我搜索过Nodejs Doc,但是找不到相关的API.
所以我编写以下代码来确定目录是否为空目录.
var fs = require('fs');
function isEmptyDir(dirnane){
try{
fs.rmdirSync(dirname)
}
catch(err){
return false;
}
fs.mkdirSync(dirname);
return true
}
Run Code Online (Sandbox Code Playgroud)
问题:看起来有点麻烦,有更好的方法用nodejs做吗?
jfr*_*d00 20
我想我想知道为什么你不只是列出目录中的文件,看看你是否收到任何文件?
fs.readdir(dirname, function(err, files) {
if (err) {
// some sort of error
} else {
if (!files.length) {
// directory appears to be empty
}
}
});
Run Code Online (Sandbox Code Playgroud)
当然,你也可以制作同步版本.
当然,这并不能保证目录中没有任何内容,但它确实意味着没有您有权查看的公共文件.
Rus*_*olm 10
像您尝试的简单同步功能:
const fs = require('fs');
function isEmpty(path) {
return fs.readdirSync(path).length === 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
有可能使用opendir为目录创建迭代器的方法调用。
这将消除读取所有文件的需要并避免潜在的内存和时间开销
import {promises as fsp} from "fs"
const dirIter = await fsp.opendir(_folderPath);
const {value,done} = await dirIter[Symbol.asyncIterator]().next();
await dirIter.close()
Run Code Online (Sandbox Code Playgroud)
done 值会告诉您目录是否为空
| 归档时间: |
|
| 查看次数: |
10195 次 |
| 最近记录: |