这应该是一个相当简单的答案,我希望,但它让我难过 - 也许我今天一直在盯着太多的代码!
我正在尝试执行一个简单的if语句来检查文件夹是否存在。如果该文件夹不存在,请将其设为删除内容。
我遇到的问题是如果目录不存在,那么回调(统计)是未定义的。使用fs.exist它会很简单,但由于它被弃用了,我想确保这是未来的证明。
var seriesid = 5;
fs.stat("temp/" + seriesid, function (err, stats){
if(!stats.isDirectory()){
fs.mkdir("temp/" + seriesid);
console.log('Folder doesn\'t exist, so I made the folder ' + seriesid);
callback();
}
else if (err != 'ENOENT') {
callback(err);
}
else {
// TODO: Folder exists, delete contents
console.log('Does exist');
callback();
}
});
任何有关如何实现这一目标的帮助将不胜感激
答案 0 :(得分:30)
首先检查err
。然后查看isDirectory()
fs.stat("temp/" + seriesid, function (err, stats){
if (err) {
// Directory doesn't exist or something.
console.log('Folder doesn\'t exist, so I made the folder ' + seriesid);
return fs.mkdir("temp/" + seriesid, callback);
}
if (!stats.isDirectory()) {
// This isn't a directory!
callback(new Error('temp is not a directory!'));
} else {
console.log('Does exist');
callback();
}
});
答案 1 :(得分:0)
你需要先检查统计数据是否存在!stats.isDirectory()