首先,我想澄清一下.mkdirSync(...)
正在被使用而不是.mkdir(...)
,因为它必须在进一步操作之前完成,并且只在应用程序(服务器)初始化时发生一次。
这是我的代码,对我来说似乎很简单:
var fs = require('fs');
try {
fs.mkdirSync('./logs');
} catch(err) {
console.log(err);
}
但它在控制台上发出此错误,不创建所需目录:
错误:EPERM:不允许操作,mkdir' c:\ my \ dev \ path \ logs'
最令人困惑的是,这种情况恰好一次,昨晚,我不明白为什么。我今天早上删除了目录以验证所谓的工作代码,现在错误正在出现。知道我需要做些什么来让它每次都有效吗?我的解决方案也需要在Linux中工作。 (是的,我的开发环境是一个与我的作品不同的操作系统,目前它有点超出我的控制范围。)
答案 0 :(得分:0)
经过一番调查后,我注意到我认为已删除的... / logs目录是间歇地出现和消失,甚至一个管理员帐户,以管理员身份运行CMD,无法查看或修改关于幻像目录的任何内容,它确实出现在dir
命令中。我能够间歇地使用dir
查看CMD中的目录,使用ls -l
的Git Bash显示drwxr-xr-x用于... / logs,并在文件资源管理器中。关闭可能与目录交互的所有正在运行的应用程序都没有效果。
我重新启动了电脑,一切都刚刚开始工作。
我意识到这不是一个非常有用的StackOverflow问题/答案。不过,这次冒险一直是我对Windows操作系统的看法。也许有人可以从中吸取教训。文件和目录权限通常不应受系统重启的影响,如果文件是ENOENT,操作系统应该知道是否是这种情况。