我为我编写的这个节点脚本提出了一个错误,该脚本用于重命名一组文件。
> node test/rename.js
fs.js:809
return binding.rename(pathModule._makeLong(oldPath),
^
Error: EPERM: operation not permitted, rename '/path/to/file v2 032.png' -> '/path/to/file 032.png'
at Error (native)
at Object.fs.renameSync (fs.js:809:18)
at Object.<anonymous> (/Users/[user]/Documents/test/rename.js:9:8)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.runMain (module.js:575:10)
at run (bootstrap_node.js:352:7)这是我正在使用的代码。
var fs = require('fs');
var path = require('path');
var folder = '/path/to/'
var regExp = /\sv2/gi;
var directory = fs.readdirSync(folder);
for (i=0; i < directory.length; i++) {
if (directory[i].match(regExp)) {
fs.renameSync(path.join(folder, directory[i]), path.join(folder, directory[i].replace(regExp, '')))
};
}我尝试了as node test/rename.js和sudo node test/rename.js,两者都抛出了错误。我不知道我做错了什么。
发布于 2016-08-17 04:49:18
解决方案:文件在OSX的Get Info标签中被锁定。我解锁了文件,重新运行了节点脚本,然后!它扭动了一下,而且起作用了。
https://stackoverflow.com/questions/38984005
复制相似问题