Node.jsでファイルを削除する:fsモジュール vs child_processモジュール
Node.jsでファイルを削除する
fsモジュールを使う
Node.jsの標準モジュールであるfs
モジュールを使う方法です。このモジュールは、ファイルやディレクトリの読み書きなど、ファイルシステムに関する操作を提供します。
ファイルを削除するには、fs.unlinkSync()
またはfs.unlink()
関数を使います。
fs.unlinkSync()
関数は、ファイル名を指定してファイルを同期的に削除します。
const fs = require('fs');
// ファイル名を指定して削除
fs.unlinkSync('./file.txt');
const fs = require('fs');
// ファイル名を指定して削除
fs.unlink('./file.txt', (err) => {
if (err) {
console.error(err);
} else {
console.log('ファイルが削除されました');
}
});
child_process
モジュールを使う方法は、rm
コマンドなどのシェルコマンドを実行してファイルを削除する方法です。
child_process.execSync()
関数は、シェルコマンドを実行してその出力を同期的に取得します。
const { execSync } = require('child_process');
// rmコマンドを実行してファイルを削除
execSync('rm ./file.txt');
const { exec } = require('child_process');
// rmコマンドを実行してファイルを削除
exec('rm ./file.txt', (err, stdout, stderr) => {
if (err) {
console.error(err);
} else {
console.log('ファイルが削除されました');
}
});
child_process.execSync()
関数は、コマンド実行中にエラーが発生した場合、プログラムが停止します。
Node.jsでファイルを削除するには、fs
モジュールまたはchild_process
モジュールを使うことができます。
fs
モジュールを使う方法は、シンプルで使いやすいです。child_process
モジュールを使う方法は、より柔軟な操作が可能です。
fsモジュールを使う
const fs = require('fs');
// ファイル名を指定して削除
fs.unlinkSync('./file.txt');
// ファイルが存在しない場合のエラー処理
try {
fs.unlinkSync('./not_exist_file.txt');
} catch (err) {
console.error(err);
}
// ファイル名を指定して非同期的に削除
fs.unlink('./file.txt', (err) => {
if (err) {
console.error(err);
} else {
console.log('ファイルが削除されました');
}
});
child_processモジュールを使う
const { execSync } = require('child_process');
// rmコマンドを実行してファイルを削除
execSync('rm ./file.txt');
// rmコマンドを実行してファイルが存在しない場合のエラー処理
try {
execSync('rm ./not_exist_file.txt');
} catch (err) {
console.error(err);
}
const { exec } = require('child_process');
// rmコマンドを実行してファイルを非同期的に削除
exec('rm ./file.txt', (err, stdout, stderr) => {
if (err) {
console.error(err);
} else {
console.log('ファイルが削除されました');
}
});
注意: サンプルコードを実行する前に、ファイルのバックアップを取っておくことをお勧めします。
Node.jsでファイルを削除するその他の方法
fs.promises.unlink()
関数は、fs.unlink()
関数の非同期版です。
const fs = require('fs');
// ファイル名を指定して非同期的に削除
fs.promises.unlink('./file.txt')
.then(() => {
console.log('ファイルが削除されました');
})
.catch(err => {
console.error(err);
});
del
モジュールは、ファイルを削除するためのサードパーティ製モジュールです。
const del = require('del');
// ファイル名を指定して削除
del(['./file.txt']);
// ディレクトリを削除
del(['./dir']);
// オプションを指定して削除
del(['./file.txt'], { force: true });
rimraf
モジュールは、ディレクトリとその配下にあるファイルを再帰的に削除するためのサードパーティ製モジュールです。
const rimraf = require('rimraf');
// ディレクトリとその配下にあるファイルを再帰的に削除
rimraf('./dir', (err) => {
if (err) {
console.error(err);
} else {
console.log('ディレクトリが削除されました');
}
});
これらの方法は、それぞれ異なる利点と欠点があります。
del
モジュールは、ファイルやディレクトリを簡単に削除できる便利なモジュールです。
Node.jsでファイルを削除するには、さまざまな方法があります。
fs
モジュールchild_process
モジュールfs.promises.unlink()
関数rimraf
モジュール
これらの方法を理解し、状況に合わせて適切な方法を選択してください。
node.js