【发布时间】:2018-11-08 14:58:26
【问题描述】:
我尝试将文件从一个目录复制并粘贴到另一个目录,但出现错误 Error: ENOENT: no such file or directory, stat 'D:\transfer\roliki\rolikiNOW\Реклама - ALESA04032016.mp3',尽管路径和文件存在。如果我“手动”将 arg 提供给 fs.copeSync,它会运行良好
for (let i = 0; i < arrPath.length; i++) {
let source = arrPath[i].replace(/\\/g, "\\\\"); // change one slash to double
let destiny = pathToCollect.replace(/\\/g, "\\\\") + "\\\\" + path.parse(arrPath[i]).base; //destination directory
console.log(source);// e.g. D:\\transfer\\roliki\\rolikiNOW\\Реклама - ALESA04032016.mp3
console.log(destiny);// D:\\collect\\Реклама - ALESA04032016.mp3
try {
fs.copySync(source, destiny);
} catch (e) {
console.log(e);// Error: ENOENT: no such file or directory, stat D:\transfer\roliki\rolikiNOW\Реклама - ALESA04032016.mp3
} finally {
console.log("success");
}
}
//this work well, as expected
fs.copySync('D:\\transfer\\roliki\\rolikiNOW\\Реклама - ALESA04032016.mp3', 'D:\\collect\\Реклама - ALESA04032016.mp3');
【问题讨论】:
-
你的意思是
fs.copyFileSync()?我猜你有一个反斜杠问题。在 Javascript 中正确使用 Windows 路径反斜杠真的很痛苦。 -
能不能显示一下
arrPath的内容? -
arrPath 是字符串数组:["D:\transfer\roliki\rolikiNOW\Реклама - ALESA04032016.mp3", "D:\transfer\roliki\rolikiNOW\Реклама - MnogoMebeli.mp3", " D:\transfer\roliki\rolikiNOW\Реклама - ВИ.mp3", end etc
标签: node.js windows electron fs