节点 – 检查目录是否存在

这应该是一个相当简单的答案,我希望,但是它让我难住 – 也许我今天一直在盯着太多的代码!

我正在试图做一个简单的if语句来检查是否存在一个文件夹。 如果该文件夹不存在,则创build该文件夹,如果存在,则删除该内容。

我遇到的问题是,如果目录不存在,那么callback(统计)是不确定的。 与fs.exist它将是非常简单的,但由于它的弃用,我想确保这是未来的certificate。

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(); } }); 

你需要在做之前检查stats是否存在!stats.isDirectory()