Node.jsでフォルダのみを削除したい場合、fs.rmdir(またはfs.rmdirSync)を使用する。
「Node.js v0.4.12 Manual & Documentation」を見ると配下ファイルを含めてフォルダを削除する関数はなさそうだった(見逃してるだけかもしれません)。
なので、以下の3ステップで配下ファイルを含めてフォルダを削除する。
- fs.readdirSyncで該当のフォルダ内のファイル名を取得
- for in文 で削除したいフォルダにあるファイル(1で取得したものに削除するファルダパスを足したもの)を、fs.unlinkSyncを使用して削除
- 最後にrmdirSyncを使用して該当のフォルダを削除
※fs.unlinkはファイルを削除する場合に使用する関数
※Syncがつくものは同期的に処理される
removeDirectory.js
var fs = require('fs');
// targetRemoveDirectoryPathに消したいディレクトリを指定
// まずは消したいフォルダの配下ファイルを削除
var targetRemoveFiles = fs.readdirSync(targetRemoveDirectoryPath);
for (var file in targetRemoveFiles) {
fs.unlinkSync(targetRemoveDirectoryPath + targetRemoveFiles[file]);
}
// 消したいフォルダを削除
fs.rmdirSync(targetRmDirPath);
ただし、これだと配下のファイル、フォルダを含めて再帰的に削除できないので、コマンドでいうrm -rfを実現できる手段が分かる人がいたら教えて下さい。