モジュールfs
fsモジュールはファイルシステム操作モジュールです。ファイルの読み取り、ファイルの書き込み、ファイルを開く、ファイルを閉じる、ファイル権限の変更などのディスク I/O 操作を提供し、同期と非同期の両方の使用をサポートします。 fs モジュールは、ファイル システム内のファイルとディレクトリの変更を監視し、指定された関数をコールバックできるファイル モニター機能も提供します。
たとえば、fibjs でファイルを読み取るには、fs モジュールの readFile メソッドを使用できます。
1
2var fs = require('fs');
var content = fs.readFile('/path/to/file');
ファイルを非同期で読み取りたい場合は、コールバックを通じて実行できます。
1
2
3
4
5var fs = require('fs');
fs.readFile('/path/to/file', function(err, data) {
if (err) throw err;
console.log(data);
});
同様に、ファイルに書き込みたい場合は、fs モジュールの writeFile メソッドを使用できます。
1
2
3var fs = require('fs');
var content = 'hello, world!';
fs.writeFile('/path/to/file', content);
ファイルを非同期で書き込みたい場合は、コールバックを通じて実行できます。
1
2
3
4
5
6var fs = require('fs');
var content = 'hello, world!';
fs.writeFile('/path/to/file', content, function(err) {
if (err) throw err;
console.log('File saved.');
});
ファイルの読み取りと書き込みに加えて、fs モジュールは、ディレクトリの作成、ファイルのアクセス許可の変更、ファイルのステータスのクエリなど、他の一連のファイル システム操作も提供します。
注意すべき点:
- 実行すると、
fs.watch(filename)
から継承された値が返されます。EventEmitterウォッチャー。「change」、「changeonly」、「renameonly」の 3 つのイベントをサポートします。 fs.watchFile(target)
fs.unwatchFile(target)
ペアでも使用できますfs.watchFile(target)
から継承された値を返しますEventEmitterのStatsWatcherオブジェクト、 call はfs.unwatchFile(target)
call と同等ですStatsWatcher.close()
。- uv は Linux で実装されているため、
fs.watch
このrecursive
オプションは win32/darwin でのみ安定的にサポートされています。Linux で使用することはできますfs.watch('/[path](path.md)/to', { recursive: true }, handler)
が、handler
コールバックのタイミングが予想と異なる場合があります。
物体
constants
fs モジュールの定数オブジェクト
1fs_constants fs.constants;
静的関数
exists
指定されたファイルまたはディレクトリが存在するかどうかを問い合わせます
1static Boolean fs.exists(String path) async;
呼び出しパラメータ:
- path: 文字列、クエリするパスを指定します
返される結果:
- Boolean、ファイルまたはディレクトリが存在することを示す True を返します。
access
指定されたファイルに対するユーザーの権限を照会します
1
2static fs.access(String path,
Integer mode = 0) async;
呼び出しパラメータ:
- path: 文字列、クエリするパスを指定します
- mode: 整数。クエリ権限を指定します。デフォルトはファイルが存在するかどうかです。
link
ハード リンク ファイルを作成します。この方法は Windows ではサポートされていません。
1
2static fs.link(String oldPath,
String newPath) async;
呼び出しパラメータ:
- oldPath: 文字列、ソースファイル
- newPath: 文字列、作成されるファイル
unlink
指定したファイルを削除する
1static fs.unlink(String path) async;
呼び出しパラメータ:
- path: 文字列、削除するパスを指定します
mkdir
ディレクトリを作成する
1
2static fs.mkdir(String path,
Integer mode = 0777) async;
呼び出しパラメータ:
- path: 文字列、作成するディレクトリ名を指定します
- mode: 整数、ファイルのアクセス許可を指定します。Windows はこのパラメータを無視します。デフォルト値: 0777
ディレクトリを作成する
1
2static fs.mkdir(String path,
Object opt) async;
呼び出しパラメータ:
- path: 文字列、作成するディレクトリ名を指定します
- opt: オブジェクト、作成パラメータを指定します
作成パラメータには次の値を含めることができます。
1
2
3
4{
recursive: false, // specify whether parent directories should be created. Default: false
mode: 0777 // specify the file mode. Default: 0777
}
rmdir
ディレクトリを削除する
1static fs.rmdir(String path) async;
呼び出しパラメータ:
- path: 文字列、削除するディレクトリ名を指定します
rename
ファイルの名前を変更する
1
2static fs.rename(String from,
String to) async;
呼び出しパラメータ:
- from: 文字列、名前を変更するファイルを指定します
- to: 文字列、変更する新しいファイル名を指定します
copyFile
srcをdestにコピーします。デフォルトでは、dest がすでに存在する場合は上書きされます。
1
2
3static fs.copyFile(String from,
String to,
Integer mode = 0) async;
呼び出しパラメータ:
- from: 文字列、コピーするソースファイル名を指定します
- to: 文字列。コピーするターゲット ファイルの名前を指定します。
- mode: 整数。コピー操作の修飾子を指定します。デフォルトは 0 です。
mode は、コピー操作の動作を指定するオプションの整数です。 2 つ以上の値のビットごとの OR で構成されるマスクを作成できます (例:fs.constants.COPYFILE_EXCL |fs.constants.COPYFILE_FICLONE)。
- fs.constants.COPYFILE_EXCL - dest がすでに存在する場合、コピー操作は失敗します。
- fs.constants.COPYFILE_FICLONE - コピー操作では、コピーオンライト リンクの作成が試行されます。プラットフォームがコピーオンライトをサポートしていない場合は、フォールバック コピー メカニズムが使用されます。
- fs.constants.COPYFILE_FICLONE_FORCE - コピー操作では、コピーオンライト リンクの作成が試行されます。プラットフォームがコピーオンライトをサポートしていない場合、コピー操作は失敗します。
chmod
指定したファイルに対するアクセス許可を設定します。Windows ではこの方法はサポートされていません。
1
2static fs.chmod(String path,
Integer mode) async;
呼び出しパラメータ:
- path: 操作を指定する文字列、ファイル
- mode: 整数、設定されたアクセス権限を指定します
lchmod
指定したファイルのアクセス許可を設定します。ファイルがソフト リンクの場合、ファイルを指すアクセス許可は変更されません。これは、macOS および BSD シリーズ プラットフォームでのみ使用できます。
1
2static fs.lchmod(String path,
Integer mode) async;
呼び出しパラメータ:
- path: 操作を指定する文字列、ファイル
- mode: 整数、設定されたアクセス権限を指定します
chown
指定したファイルの所有者を設定します。Windows はこの方法をサポートしていません。
1
2
3static fs.chown(String path,
Integer uid,
Integer gid) async;
呼び出しパラメータ:
- path: 文字列、設定を指定するファイル
- uid: 整数、ファイル所有者のユーザー ID
- gid: 整数、ファイル所有者グループ ID
lchown
指定したファイルの所有者を設定します。指定したファイルがソフト リンクの場合、それが指すファイルの所有者は変更されません。Windows はこの方法をサポートしていません。
1
2
3static fs.lchown(String path,
Integer uid,
Integer gid) async;
呼び出しパラメータ:
- path: 文字列、設定を指定するファイル
- uid: 整数、ファイル所有者のユーザー ID
- gid: 整数、ファイル所有者グループ ID
stat
指定したファイルの基本情報を問い合わせます
1static Stat fs.stat(String path) async;
呼び出しパラメータ:
- path: 文字列、クエリ対象のファイルを指定します
返される結果:
- Stat、ファイルの基本情報を返します。
lstat
指定したファイルの基本情報を問い合わせます。stat とは異なり、pathソフトリンクの場合、返される情報は、指定されたファイルの情報ではなく、このソフトリンクの情報になります。
1static Stat fs.lstat(String path) async;
呼び出しパラメータ:
- path: 文字列、クエリ対象のファイルを指定します
返される結果:
- Stat、ファイルの基本情報を返します。
fstat
指定したファイルの基本情報を問い合わせます
1static Stat fs.fstat(FileHandle fd) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
返される結果:
- Stat、ファイルの基本情報を返します。
readlink
指定されたソフト リンク ファイルを読み取ります。この方法は Windows ではサポートされていません。
1static String fs.readlink(String path) async;
呼び出しパラメータ:
- path: 文字列。読み取るソフト リンク ファイルを指定します。
返される結果:
- String、ソフトリンクが指すファイル名を返します。
realpath
指定されたパスの絶対パスを返します。指定されたパスに相対パスが含まれている場合は、それも展開されます。
1static String fs.realpath(String path) async;
呼び出しパラメータ:
- path: 文字列、読み取るパスを指定します
返される結果:
- String、処理された絶対パスを返します
symlink
ソフトリンクファイルを作成する
1
2
3static fs.symlink(String target,
String linkpath,
String type = "file") async;
呼び出しパラメータ:
- target: 文字列、ターゲット ファイル。ファイル、ディレクトリ、または存在しないパスを指定できます。
- linkpath: 文字列、作成されるソフトリンクファイル
- type: 文字列、作成されたソフト接続のタイプ。オプションのタイプは「file」、「dir」、「junction」です。デフォルトは「file」です。このパラメータは Windows でのみ有効です。「junction」の場合、ターゲットはパス linkpath は絶対パスである必要があり、ターゲットは自動的に絶対パスに変換されます。
truncate
ファイル サイズを変更します。指定した長さがソース ファイルのサイズより大きい場合は、「\0」で埋められます。そうでない場合は、余分なファイルの内容は失われます。
1
2static fs.truncate(String path,
Integer len) async;
呼び出しパラメータ:
- path: 文字列、変更されたファイルのパスを指定します
- len: 整数、変更されたファイルのサイズを指定します
read
ファイル記述子に従ってファイルの内容を読み取ります
1
2
3
4
5static Integer fs.read(FileHandle fd,
Buffer buffer,
Integer offset = 0,
Integer length = 0,
Integer position = -1) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
- buffer:Buffer、読み取り結果はに書き込まれますBuffer物体
- offset: 整数、Buffer書き込みオフセット、デフォルトは 0
- length: 整数、ファイルから読み取られたバイト数、デフォルトは 0
- position: 整数、ファイル読み取り位置、デフォルトは現在のファイル位置です
返される結果:
- Integer、実際に読み取られたバイト数
fchmod
ファイル記述子に基づいてファイル モードを変更します。 POSIX システムでのみ有効です。
1
2static fs.fchmod(FileHandle fd,
Integer mode) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
- mode: 整数、ファイルのモード
fchown
ファイル記述子に応じて、所有者を変更します。 POSIX システムでのみ有効です。
1
2
3static fs.fchown(FileHandle fd,
Integer uid,
Integer gid) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
- uid: 整数、ユーザーID
- gid: 整数、グループID
fdatasync
ファイル記述子に基づいてデータをディスクに同期する
1static fs.fdatasync(FileHandle fd) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
fsync
ファイル記述子に基づいてデータをディスクに同期する
1static fs.fsync(FileHandle fd) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
readdir
指定したディレクトリからファイル情報を読み取ります
1static NArray fs.readdir(String path) async;
呼び出しパラメータ:
- path: 文字列、クエリ対象のディレクトリを指定します
返される結果:
- NArray、ディレクトリのファイル情報配列を返します。
指定したディレクトリからファイル情報を読み取ります
1
2static NArray fs.readdir(String path,
Object opts = {}) async;
呼び出しパラメータ:
- path: 文字列、クエリ対象のディレクトリを指定します
- opts: オブジェクト、パラメータを指定します
返される結果:
- NArray、ディレクトリのファイル情報配列を返します。
パラメータ opts でサポートされるオプションは次のとおりです。
1
2
3{
"recursive": false // specify whether all subdirectories should be watched or only the current directory
}
openFile
ファイルを読み取り、書き込み、またはその両方のために開きます
1
2static SeekableStream fs.openFile(String fname,
String flags = "r") async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- flags: 文字列、ファイルを開く方法を指定します。デフォルトは「r」、読み取り専用モードです。
返される結果:
- SeekableStream、開いているファイル オブジェクトを返します。
サポートされているパラメータ フラグのメソッドは次のとおりです。
- 'r' 読み取り専用モード。ファイルが存在しない場合はエラーがスローされます。
- 「r+」読み取りおよび書き込みモード。ファイルが存在しない場合はエラーがスローされます。
- 「w」は書き込み専用モードです。ファイルが存在しない場合は自動的に作成され、存在する場合はクリアされます。
- 「w+」読み取りおよび書き込みモードでは、ファイルが存在しない場合は自動的に作成されます。
- 'a' は add メソッドを記述するだけで、ファイルが存在しない場合は自動的に作成されます。
- 「a+」読み取り/書き込み追加モードでは、ファイルが存在しない場合は自動的に作成されます。
open
ファイル記述子を開く
1
2
3static FileHandle fs.open(String fname,
String flags = "r",
Integer mode = 0666) async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- flags: 文字列、ファイルを開く方法を指定します。デフォルトは「r」、読み取り専用モードです。
- mode: 整数、ファイル作成時にファイルモードを指定、デフォルトは0666
返される結果:
- FileHandle、開いているファイル記述子を返します。
サポートされているパラメータ フラグのメソッドは次のとおりです。
- 'r' 読み取り専用モード。ファイルが存在しない場合はエラーがスローされます。
- 「r+」読み取りおよび書き込みモード。ファイルが存在しない場合はエラーがスローされます。
- 「w」は書き込み専用モードです。ファイルが存在しない場合は自動的に作成され、存在する場合はクリアされます。
- 「w+」読み取りおよび書き込みモードでは、ファイルが存在しない場合は自動的に作成されます。
- 'a' は add メソッドを記述するだけで、ファイルが存在しない場合は自動的に作成されます。
- 「a+」読み取り/書き込み追加モードでは、ファイルが存在しない場合は自動的に作成されます。
close
ファイル記述子を閉じる
1static fs.close(FileHandle fd) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
openTextStream
テキスト ファイルを読み取り、書き込み、またはその両方のために開きます
1
2static BufferedStream fs.openTextStream(String fname,
String flags = "r") async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- flags: 文字列、ファイルを開く方法を指定します。デフォルトは「r」、読み取り専用モードです。
返される結果:
- BufferedStream、開いているファイル オブジェクトを返します。
サポートされているパラメータ フラグのメソッドは次のとおりです。
- 'r' 読み取り専用モード。ファイルが存在しない場合はエラーがスローされます。
- 「r+」読み取りおよび書き込みモード。ファイルが存在しない場合はエラーがスローされます。
- 「w」は書き込み専用モードです。ファイルが存在しない場合は自動的に作成され、存在する場合はクリアされます。
- 「w+」読み取りおよび書き込みモードでは、ファイルが存在しない場合は自動的に作成されます。
- 'a' は add メソッドを記述するだけで、ファイルが存在しない場合は自動的に作成されます。
- 「a+」読み取り/書き込み追加モードでは、ファイルが存在しない場合は自動的に作成されます。
readTextFile
テキスト ファイルを開いてその内容を読みます
1static String fs.readTextFile(String fname) async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
返される結果:
- String、ファイルのテキストコンテンツを返します。
readFile
ファイルを開いて内容を読みます
1
2static Variant fs.readFile(String fname,
String encoding = "") async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- encoding: 文字列。デコード方法を指定します。デフォルトではデコードは実行されません。
返される結果:
- Variant、ファイルのテキストコンテンツを返します。
ファイルを開いて内容を読みます
1
2static Variant fs.readFile(String fname,
Object options) async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- options: オブジェクト、読み取りオプションを指定します
返される結果:
- Variant、ファイルのテキストコンテンツを返します。
options でサポートされるオプションは次のとおりです。
1
2
3{
"encoding": "utf8" // specify the encoding, default is utf8.
}
readLines
ファイルを開き、配列モードで一連のテキスト行を読み取ります。行末識別子は EOL 属性の設定に基づきます。デフォルトでは、posix: "\n"、windows: "\r\n"
1
2static Array fs.readLines(String fname,
Integer maxlines = -1);
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- maxlines: 整数。今回読み取られる最大行数を指定します。デフォルトでは、すべてのテキスト行が読み取られます。
返される結果:
- Arrayは、読み取られたテキスト行の配列を返します。読み取るデータがない場合、または接続が中断された場合、配列は空になります。
write
ファイル記述子に従ってコンテンツをファイルに書き込みます
1
2
3
4
5static Integer fs.write(FileHandle fd,
Buffer buffer,
Integer offset = 0,
Integer length = -1,
Integer position = -1) async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
- buffer:Buffer、書かれることBuffer物体
- offset: 整数、Bufferデータ読み取りオフセット、デフォルトは 0
- length: 整数、ファイルに書き込まれるバイト数、デフォルトは -1
- position: 整数、ファイルの書き込み場所、デフォルトは現在のファイルの場所です
返される結果:
- Integer、実際に書き込まれたバイト数
ファイル記述子に従ってコンテンツをファイルに書き込みます
1
2
3
4static Integer fs.write(FileHandle fd,
String string,
Integer position = -1,
String encoding = "utf8") async;
呼び出しパラメータ:
- fd:FileHandle、ファイル記述子オブジェクト
- string: String、書き込む文字列
- position: 整数、ファイルの書き込み場所、デフォルトは現在のファイルの場所です
- encoding: 文字列、デコード方法を指定します。デフォルトのデコードは utf8 です。
返される結果:
- Integer、実際に書き込まれたバイト数
writeTextFile
テキストファイルを作成して内容を書き込む
1
2static fs.writeTextFile(String fname,
String txt) async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- txt: String、書き込まれる文字列を指定します
writeFile
バイナリファイルを作成してコンテンツを書き込む
1
2
3static fs.writeFile(String fname,
Buffer data,
String opt = "binary") async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- data:Buffer、書き込むバイナリデータを指定します
- opt: 文字列。書き込みオプションを指定します。無視されます。
バイナリファイルを作成してコンテンツを書き込む
1
2
3static fs.writeFile(String fname,
Buffer data,
Object options) async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- data:Buffer、書き込むバイナリデータを指定します
- options: オブジェクト、書き込みオプションを指定します、無視されます
ファイルを作成してコンテンツを書き込む
1
2
3static fs.writeFile(String fname,
String data,
String opt = "utf8") async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- data: 文字列、書き込むデータを指定します
- opt: 文字列、書き込みオプションを指定します
ファイルを作成してコンテンツを書き込む
1
2
3static fs.writeFile(String fname,
String data,
Object options) async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- data: 文字列、書き込むデータを指定します
- options: オブジェクト、書き込みオプションを指定します
options でサポートされるオプションは次のとおりです。
1
2
3{
"encoding": "utf8" // specify the encoding, default is utf8.
}
appendFile
バイナリファイルを作成してコンテンツを書き込む
1
2static fs.appendFile(String fname,
Buffer data) async;
呼び出しパラメータ:
- fname: 文字列、ファイル名を指定します
- data:Buffer、書き込むバイナリデータを指定します
setZipFS
設定zip仮想ファイルマッピング
1
2static fs.setZipFS(String fname,
Buffer data);
呼び出しパラメータ:
clearZipFS
クリアzip仮想ファイルマッピング
1static fs.clearZipFS(String fname = "");
呼び出しパラメータ:
- fname: 文字列、マッピング パスを指定し、デフォルトですべてのキャッシュをクリアします
watch
ファイルを監視し、対応するウォッチャー オブジェクトを返す
1static FSWatcher fs.watch(String fname);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
返される結果:
ファイルを監視し、対応するウォッチャー オブジェクトを返す
1
2static FSWatcher fs.watch(String fname,
Function callback);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
- callback
(evtType: 'change' | 'rename', filename: string) => any
:ファイルオブジェクト変更時の処理コールバック関数
返される結果:
ファイルを監視し、対応するウォッチャー オブジェクトを返す
1
2static FSWatcher fs.watch(String fname,
Object options);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
- options: オブジェクト、観察オプション
返される結果:
options でサポートされるオプションは次のとおりです。
1
2
3
4
5{
"persistent": true, // specify whether the process should continue to run as long as files are being watched
"recursive": false, // specify whether all subdirectories should be watched or only the current directory
"encoding": "utf8", // specify the encoding, default is utf8.
}
ファイルを監視し、対応するウォッチャー オブジェクトを返す
1
2
3static FSWatcher fs.watch(String fname,
Object options,
Function callback);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
- options: オブジェクト、観察オプション
- callback
(evtType: 'change' | 'rename', filename: string) => any
:ファイルオブジェクト変更時の処理コールバック関数
返される結果:
options でサポートされるオプションは次のとおりです。
1
2
3
4
5{
"persistent": true, // specify whether the process should continue to run as long as files are being watched
"recursive": false, // specify whether all subdirectories should be watched or only the current directory
"encoding": "utf8", // specify the encoding, default is utf8.
}
watchFile
ファイルを観察し、対応するファイルを返します。StatsWatcher物体
1
2static StatsWatcher fs.watchFile(String fname,
Function callback);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
- callback:
(curStats: Stats, prevStats: Stats) => any
ファイルオブジェクトの統計が変更されたときの処理コールバック関数。
返される結果:
ファイルを観察し、対応するファイルを返します。StatsWatcher物体
1
2
3static StatsWatcher fs.watchFile(String fname,
Object options,
Function callback);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
- options: オブジェクト、観察オプション
- callback:
(curStats: Stats, prevStats: Stats) => any
ファイルオブジェクトの統計が変更されたときの処理コールバック関数。
返される結果:
options でサポートされるオプションは次のとおりです。
1
2
3
4
5{
"persistent": true, // specify whether the process should continue to run as long as files are being watched
"recursive": false, // specify whether all subdirectories should be watched or only the current directory
"encoding": "utf8", // specify the encoding, default is utf8.
}
unwatchFile
fname の観察からStatsWatcherすべての監視イベント コールバックをから削除します。
1static fs.unwatchFile(String fname);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
返される結果:
fname の観察からStatsWatcher観測イベントのコールバックからcallback
コールバックを削除します。
1
2static fs.unwatchFile(String fname,
Function callback);
呼び出しパラメータ:
- fname: 文字列、監視するファイル オブジェクトを指定します
- callback: 関数、削除するコールバック
返される結果:
コールバックがなくなってもStatsWatcher観測イベントのコールバックではエラーは報告されません。
絶え間ない
SEEK_SET
シークメソッド定数、絶対位置へ移動
1const fs.SEEK_SET = 0;
SEEK_CUR
シークメソッド定数、現在位置からの相対位置へ移動
1const fs.SEEK_CUR = 1;
SEEK_END
シークモード定数、ファイルの終わりの相対位置に移動
1const fs.SEEK_END = 2;