15

fs-extra module を使用して、あるフォルダーから別のフォルダーにイメージをコピーしようとしています。

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

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

これは私のディレクトリです

そして、これは私がいつも得るエラーです:

エラー {errno: -4058、コード: "ENOENT"、syscall: "lstat"、パス: "E:\mainisp.jpg"、メッセージ: "ENOENT: no such file or directory, lstat 'E:\mainisp.jpg' "}

宛先を./test/に変更すると、このエラーが発生します

エラー {errno: -4058、コード: "ENOENT"、syscall: "lstat"、パス: "E:\Development\Node apps\Node softwares\Digital_library\mainisp.jpg"、メッセージ: "ENOENT: そのようなファイルまたはディレクトリはありません" , lstat 'E:\Devel… アプリ\ノード ソフトウェア\Digital_library\mainisp.jpg'"}

注: ブラウザーでこれをテストしていません。これは Nwjs アプリであり、添付されたエラーの写真は Nwjs コンソールからのものです。

4

3 に答える 3

21

これは、ストリームを使用して簡単にネイティブ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));
}
于 2016-07-26T16:55:50.037 に答える
12

試す:

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

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

エラー メッセージでわかるようE:\mainisp.jpgに、現在のディレクトリではなく、からファイルを読み込もうとしています。

宛先フォルダーだけでなく、ファイルでターゲット パスも指定する必要があります。

于 2016-07-26T16:51:11.050 に答える