fs.rename同步奇怪的删除行为

问题描述

我目前正在使用NodeJS在Electron中编写一个小型桌面应用程序,这是我第一次正确进入Node领域。

我的问题是,当我在一组文件上使用fs.renameSyncfs.rename时,我第一次通过此功能运行它们时,它们会正确重命名。但是在同一文件上的第二次及以后,文件开始从磁盘上消失/删除,我似乎无法弄清楚为什么。我只能找到其他SO Post引用此文件,但这是由于文件名上没有使用var

这在MacOS,Ubuntu 20.04和manjaro 20.0.3上均会发生,因此它不仅与一个OS相关。

async function processtargetDirectory({targetPath}) {
fs.readdir(targetPath,(err,files) => {
    if (err) {
        getMainWindow.webContents.send('folder:error',{err})
    }

    var filesNum = 0;
    process.chdir(targetPath);
    const cwd = process.cwd();

    files.forEach(file => {
        var originalExt = path.extname(file);
        var prefix = config.get('prefix');

        fs.renameSync(file,`${prefix}_${filesNum}${originalExt}`);
        filesNum++;
    });
});

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)