我希望这是一个相当简单的答案,但是这让我很困惑-也许我今天一直在盯着太多的代码!
我正在尝试做一个简单的if语句,该语句检查文件夹是否存在。如果该文件夹不存在,请将其删除,如果存在,则将其删除。
我遇到的问题是,如果目录不存在,则未定义回调(统计信息)。使用fs.exist会很简单,但是由于已弃用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();
}
});
任何有关如何实现这一目标的帮助将不胜感激
最佳答案
首先检查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();
}
});