将源文件复制到 Nodejs 中的另一个目的地

新手上路,请多包涵

我正在尝试使用 fs-extra 模块将图像从一个文件夹复制到另一个文件夹。

 var fse = require('fs-extra');

function copyimage() {
  fse.copy('mainisp.jpg', './test', function (err) {
    if (err)
      return console.error(err)
  });
}

这是我的目录

这是我一直遇到的错误:

错误 {errno: -4058,代码:“ENOENT”,系统调用:“lstat”,路径:“E:\mainisp.jpg”,消息:“ENOENT:没有这样的文件或目录,lstat ‘E:\mainisp.jpg’ “}

并将目的地更改为 ./test/ 我收到此错误

错误 {errno:-4058,代码:“ENOENT”,系统调用:“lstat”,路径:“E:\Development\Node apps\Node softwares\Digital_library\mainisp.jpg”,消息:“ENOENT:没有这样的文件或目录, lstat ‘E:\Devel… apps\Node softwares\Digital_library\mainisp.jpg’“}

注意:我没有在浏览器中测试这个。这是一个 Nwjs 应用程序,所附的错误图片来自 Nwjs 控制台。

原文由 Rao Arman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 316
2 个回答

尝试:

 var fs = require('fs-extra');

fs.copySync(path.resolve(__dirname,'./mainisp.jpg'), './test/mainisp.jpg');

正如您在错误消息中看到的那样,您正在尝试从 E:\mainisp.jpg 而不是当前目录读取文件。

您还需要指定文件的目标路径,而不仅仅是目标文件夹。

原文由 alejandromav 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用本机 fs 模块轻松使用流来执行此操作。

 const fs = require('fs');
const path = require('path');

let filename = 'mainisp.jpg';
let src = path.join(__dirname, filename);
let destDir = path.join(__dirname, 'test');

fs.access(destDir, (err) => {
  if(err)
    fs.mkdirSync(destDir);

  copyFile(src, path.join(destDir, filename));
});

function copyFile(src, dest) {

  let readStream = fs.createReadStream(src);

  readStream.once('error', (err) => {
    console.log(err);
  });

  readStream.once('end', () => {
    console.log('done copying');
  });

  readStream.pipe(fs.createWriteStream(dest));
}

原文由 peteb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题