文件无法复制到另一个目录(fs.access和copyFile)

时间:2017-05-18 15:34:17

标签: javascript node.js file-upload mean-stack

我正在尝试将pdf和/或word文档从一个文件夹复制到另一个文件夹中。下面的代码有时会起作用,但有时则不起作用。

app.post('/api/file_archive/:file_name', function (req, res) {
    var file_name = req.params.file_name;
    var src = 'public/uploads/files/' + file_name;
    var dest = 'archived_files/files';

    if(file_name != "") {
        console.log("Entered fs access");
        fs.access(dest, function(err) {
            if(err)
                fs.mkdirSync(dest);

            copyFile(src, path.join(dest, file_name));
            res.json({ message: 'file archived!'});


        });
    };
});

我目前收到此错误:

{ Error: ENOENT: no such file or directory, open 'C:\Users\duquetr\Documents\maize-and-blue-brief\public\uploads\files\1495121011192_Letter of Rec for RJ.pdf' at Error (native) errno: -4058, code: 'ENOENT', syscall: 'open', path: 'C:\\Users\\duquetr\\Documents\\maize-and-blue-brief\\public\\uploads\\files\\1495121011192_Letter of Rec for RJ.pdf' }

我已经搜索了一下,我似乎无法找到任何与此代码有时有效的原因有关。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

检查你的src并确保传递此函数的代码文件名正常工作!

答案 1 :(得分:0)

检查文件夹是否存在,文件将被复制到哪里。 因为复制功能不会添加新的文件夹。因此,如果您从“ src / 1 / 2.txt”复制到“ dest”,而dest文件夹中没有另一个名为“ 1”的文件夹,则“ 2.txt”的复制过程将无法进行