Windows 10 ENOENT 4058上具有fs.rename的节点

问题描述 投票:0回答:1

因此,我正在尝试编写一个小脚本来重命名目录中的文件。系统是带有节点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,以及复制而不是重命名文件。有什么想法吗?

node.js fs
1个回答
0
投票

您正在此路径上执行fs.readdir()

© www.soinside.com 2019 - 2024. All rights reserved.