Node.js でフォルダーを操作する
Node.js の fs コアモジュールは、フォルダーの操作に使用できる便利なメソッドを多数提供しています。
フォルダーが存在するか確認する
フォルダーが存在し、Node.js がその権限でアクセスできるかを確認するには、fs.access() (およびその Promise ベースの対応物である fsPromises.access()) を使用します。
新しいフォルダーを作成する
新しいフォルダーを作成するには、fs.mkdir()、fs.mkdirSync()、または fsPromises.mkdir() を使用します。
const = ('node:fs');
const = '/Users/joe/test';
try {
if (!.()) {
.();
}
} catch () {
.();
}
ディレクトリの内容を読み取る
ディレクトリの内容を読み取るには、fs.readdir()、fs.readdirSync()、または fsPromises.readdir() を使用します。
このコードは、フォルダーの内容 (ファイルとサブフォルダーの両方) を読み取り、それらの相対パスを返します。
const = ('node:fs');
const = '/Users/joe';
.();
フルパスを取得できます。
fs.readdirSync(folderPath).map( => {
return path.join(folderPath, );
});
結果をフィルタリングしてファイルのみを返し、フォルダーを除外することもできます。
const = ('node:fs');
const = => {
return .().();
};
.(folderPath)
.( => {
return path.join(folderPath, );
})
.();
フォルダーの名前を変更する
フォルダーの名前を変更するには、fs.rename()、fs.renameSync()、または fsPromises.rename() を使用します。最初のパラメーターは現在のパス、2 番目は新しいパスです。
const = ('node:fs');
.('/Users/joe', '/Users/roger', => {
if () {
.();
}
// done
});
fs.renameSync() は同期バージョンです。
const = ('node:fs');
try {
.('/Users/joe', '/Users/roger');
} catch () {
.();
}
fsPromises.rename() は Promise ベースのバージョンです。
const = ('node:fs/promises');
async function () {
try {
await .('/Users/joe', '/Users/roger');
} catch () {
.();
}
}
();
フォルダーを削除する
フォルダーを削除するには、fs.rmdir()、fs.rmdirSync()、または fsPromises.rmdir() を使用します。
const = ('node:fs');
.(dir, => {
if () {
throw ;
}
.(`${dir} is deleted!`);
});
内容を含むフォルダーを削除するには、{ recursive: true } オプションを付けて fs.rm() を使用し、内容を再帰的に削除します。
{ recursive: true, force: true } を指定すると、フォルダーが存在しない場合に例外が無視されるようになります。
const = ('node:fs');
.(dir, { : true, : true }, => {
if () {
throw ;
}
.(`${dir} is deleted!`);
});