2016-08-16 2 views
0

Я придумал ошибку для этого сценария узла, который я написал, чтобы переименовать кучу файлов.EPERM fs.rename

> 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, ''))) 
    }; 
} 

Я попробовал это, как и node test/rename.js и sudo node test/rename.js с обоими откинув ошибки. Я не вижу, где я собрался.

+0

Можете ли вы вручную переименовать из командной строки? – Amit

+0

Я просто попробовал файл 'mv v2.png file.png', и он не удался. Это проблема chmod? –

+0

вы отредактировали ошибку?/path/to/file? – owaishanif786

ответ

0

Файлы были заблокированы на вкладке Get Info OSX. Я разблокировал файлы, перезапустил скрипт узла и vola! Он трясся, и это сработало.

Смежные вопросы