fs.rename 无法重命名包含 Windows 10 上的内容的目录
fs.rename unable to rename directories with contents on Windows 10
所以我看到了几个与此问题类似的问题,但我还没有找到任何可以完全解决它的问题。
只要目录为空,我就可以使用 node.js 重命名目录。添加内容后,出现错误:EPERM: operation not permitted
。如果删除内容,我将重新获得重命名的能力。我在这里缺少什么简单的东西吗?代码中没有什么疯狂的...只是不能重命名目录,如果它有内容。
app.post('/rename', function(req, res, next) {
let _target = req.body.target,
_from = req.body.from,
_to = req.body.to;
fs.renameSync(
'public/' + _target + '/' + _from,
'public/' + _target + '/' + _to,
function(err, data) {
if (err) { sLog(err); return }
res.send('File Renamed');
}
);
});
-- 编辑--
问题出在目录有子目录时。重命名目录中的文件似乎不影响操作
问题是我使用的是 nodemon 而不是 node。显然,作为一个侦听器,它正在锁定文件...一旦我 运行 一切都作为节点,它就按预期运行了。
所以我看到了几个与此问题类似的问题,但我还没有找到任何可以完全解决它的问题。
只要目录为空,我就可以使用 node.js 重命名目录。添加内容后,出现错误:EPERM: operation not permitted
。如果删除内容,我将重新获得重命名的能力。我在这里缺少什么简单的东西吗?代码中没有什么疯狂的...只是不能重命名目录,如果它有内容。
app.post('/rename', function(req, res, next) {
let _target = req.body.target,
_from = req.body.from,
_to = req.body.to;
fs.renameSync(
'public/' + _target + '/' + _from,
'public/' + _target + '/' + _to,
function(err, data) {
if (err) { sLog(err); return }
res.send('File Renamed');
}
);
});
-- 编辑--
问题出在目录有子目录时。重命名目录中的文件似乎不影响操作
问题是我使用的是 nodemon 而不是 node。显然,作为一个侦听器,它正在锁定文件...一旦我 运行 一切都作为节点,它就按预期运行了。