【Node.js24.x】Object::futimesSync()メソッドの使い方
futimesSyncメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
futimesSyncメソッドは、Node.jsのファイルシステム操作において、指定されたファイルのアクセス時刻と更新時刻を同期的に変更するメソッドです。このメソッドは、開かれたファイルを識別するための番号であるファイルディスクリプタ(fd)を受け取り、そのファイルに新しいアクセス時刻(atime)と更新時刻(mtime)を設定します。
アクセス時刻(atime)はファイルが最後に読み込まれた時間を、更新時刻(mtime)はファイルの内容が最後に変更された時間をそれぞれ表します。これらの時刻は、JavaScriptのDateオブジェクト、または1970年1月1日00:00:00 UTCからの経過ミリ秒数として指定できます。
futimesSyncの特徴は、処理が「同期的に」行われる点にあります。これは、futimesSyncメソッドがファイルの時間情報を変更し終えるまで、プログラムの次の処理が一時停止することを意味します。そのため、I/O処理が完了するまで待機する必要がある場面では便利ですが、大量のファイル操作や応答性が求められるアプリケーションでは、Node.jsのイベントループをブロックし、全体のパフォーマンスに影響を与える可能性があるため、注意が必要です。
このメソッドは、ファイルのバックアップや同期ツールを作成する際に、元のファイルの時刻情報を正確に保持したい場合や、特定の時刻状態を再現する必要があるテスト環境などで役立ちます。ファイルディスクリプタは通常、fs.openSyncなどのメソッドでファイルを開いた際に取得できます。
構文(syntax)
1const fs = require('node:fs'); 2 3const fd = fs.openSync('tempfile.txt', 'w'); 4const currentTime = Date.now(); 5 6fs.futimesSync(fd, currentTime, currentTime); 7 8fs.closeSync(fd);
引数(parameters)
fd, atime, mtime
- fd: number: ファイルディスクリプタ。
fs.open()のコールバックで取得されるファイルへの参照。 - atime: number: アクセス時刻 (access time)。UNIX エポックからの秒数で表される数値。
- mtime: number: 更新時刻 (modification time)。UNIX エポックからの秒数で表される数値。
戻り値(return)
戻り値なし
戻り値はありません