【Node.js24.x】Object::statSync()メソッドの使い方
statSyncメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
statSyncメソッドは、Node.jsのファイルシステム(fs)モジュールが提供する、指定されたパスのファイルやディレクトリのステータス情報を同期的に取得するメソッドです。このメソッドは、引数としてファイルまたはディレクトリのパスを受け取り、そのパスに存在する対象についての詳細な情報をfs.Statsオブジェクトとして返します。
取得できる情報には、対象がファイルであるかディレクトリであるかを示すタイプ、ファイルのサイズ(バイト単位)、最終アクセス時刻、最終変更時刻、作成時刻、そして所有者やパーミッションなどのメタデータが含まれます。fs.Statsオブジェクトには、これらの情報を確認するための便利なプロパティやメソッド(例: isFile(), isDirectory(), size)が用意されています。
statSyncは「同期」処理であるため、ファイルシステムからの情報取得が完了するまで、Node.jsアプリケーションのメインスレッドは一時停止し、次のコードの実行はブロックされます。これにより、処理の順序が保証されますが、特に大規模なファイル操作や、アプリケーションの応答性が重要なWebサーバーなどの場面では、パフォーマンスの低下を招く可能性があります。そのため、多くのI/O操作を行う場合や、アプリケーション全体の応答性を保ちたい場合は、非同期版のfs.statやPromiseベースのfs.promises.statメソッドの利用も検討することが推奨されます。
このメソッドは、例えばアプリケーション起動時に特定ファイルの存在確認やサイズ確認を行うなど、比較的シンプルで一過性のファイルシステム操作に適しています。
構文(syntax)
1const fs = require('node:fs'); 2const stats = fs.statSync('path/to/file.txt');
引数(parameters)
path, options = {bigint:false, throwIfNoEntry:true}
- path: string: ファイルまたはディレクトリへのパス
- options: object = {bigint:false, throwIfNoEntry:true}: オプションを指定するオブジェクト
- bigint: boolean = false: ファイルサイズをBigInt型で取得するかどうか
- throwIfNoEntry: boolean = true: 指定されたパスが存在しない場合にエラーをスローするかどうか
戻り値(return)
fs.Stats
statSyncメソッドは、指定されたパスのファイルやディレクトリに関する情報を格納したfs.Statsオブジェクトを返します。このオブジェクトには、サイズ、最終更新日時、パーミッションなどの情報が含まれています。