因此,我正在尝试编写一个小脚本来重命名目录中的文件。系统是带有节点12.13.1的Windows 10重命名过程应检查文件扩展名,然后增加文件的前缀。我有大多数逻辑,即使不是很精巧地一起砍掉了,但我正在努力解决此错误:
[Error: ENOENT: no such file or directory, rename 'C:\Projects\rename_app\2test.txt' -> 'C:\Projects\rename_app\1test.txt'] {
errno: -4058,
code: 'ENOENT',
syscall: 'rename',
path: 'C:\\Projects\\rename_app\\2test.txt',
dest: 'C:\\Projects\\rename_app\\1test.txt'
}
无论提供给重命名函数的参数顺序如何,或者是否以提升的特权运行命令,都会发生此错误。
这里是代码的清理版本,其中删除了我的console.logs:
const path = require('path');
const fs = require('fs');
const directoryPath = path.join(__dirname, 'Documents');
fs.readdir(directoryPath, function (err, files) {
if (err) {
return console.log('Unable to scan directory: ' + err);
}
files.forEach(function (file) {
suffix = file.substring(file.length -3);
if(suffix === "txt"){
prefix = file.charAt(0);
if(!isNaN(prefix)){
newPre = prefix++;
newFile = file.replace(newPre, prefix);
file1 = path.join(__dirname, file);
newFile1 = path.join(__dirname, newFile);
fs.rename(file1, newFile1, function(err){
if(err) throw err;
console.log('it worked?');
})
}
}
});
});
从搜索开始,我还没有提出解决方案,我试图使用renameSync,以及复制而不是重命名文件。有什么想法吗?
您正在此路径上执行fs.readdir()
: