Nodejs Docを検索しましたが、相対APIが見つかりません。
そこで、次のコードを記述して、ディレクトリが空のディレクトリかどうかを判断します。
var fs = require('fs');
function isEmptyDir(dirnane){
try{
fs.rmdirSync(dirname)
}
catch(err){
return false;
}
fs.mkdirSync(dirname);
return true
}
質問:それはいくつかの厄介なように見えます、nodejsでそれを行うより良い方法はありますか?
ディレクトリ内のファイルを一覧表示して、ファイルが返されるかどうかを確認しないのはなぜでしょうか。
fs.readdir(dirname, function(err, files) {
if (err) {
// some sort of error
} else {
if (!files.length) {
// directory appears to be empty
}
}
});
もちろん、これの同期バージョンも作成できます。
もちろん、これはディレクトリに何もないことを保証するものではありませんが、そこに表示する権限がある公開ファイルがないことを意味します。
ディレクトリのイテレータを作成するopendir
メソッド呼び出しを使用する可能性があります。
これにより、すべてのファイルを読み取る必要がなくなり、潜在的なメモリと時間のオーバーヘッドが回避されます
import {promises as fsp} from "fs"
const dirIter = await fsp.opendir(_folderPath);
const {value,done} = await dirIter[Symbol.asyncIterator]().next();
await dirIter.close()
Done値は、ディレクトリが空かどうかを示します
あなたがしようとしていたような単純な同期機能:
const fs = require('fs');
function isEmpty(path) {
return fs.readdirSync(path).length === 0;
}