2016-07-26 3 views
3

fs-extra 모듈을 사용하여 폴더의 이미지를 다른 폴더로 복사하려고합니다. 소스 파일을 Nodejs의 다른 대상에 복사

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

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

내 디렉토리

이며, 이것은 내가 항상 얻을 오류입니다 :

Error {errno: -4058, code: "ENOENT", syscall: "lstat", path: "E:\mainisp.jpg", message: "ENOENT: no such file or directory, lstat 'E:\mainisp.jpg'"}

./test/에 대상을 변경하여이 오류를 얻을 수

Error {errno: -4058, code: "ENOENT", syscall: "lstat", path: "E:\Development\Node apps\Node softwares\Digital_library\mainisp.jpg", message: "ENOENT: no such file or directory, lstat 'E:\Devel… apps\Node softwares\Digital_library\mainisp.jpg'"}

참고 : 브라우저에서 테스트하지 않습니다. 그것은 Nwjs 응용 프로그램이고 첨부 된 오류 사진은 Nwjs 콘솔에서 가져온 것입니다.

답변

10

스트림을 사용하여 쉽게 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)); 
} 
+0

이것은 또한 작동해야합니다. – alex030293

+0

작동하지 않습니다! '.. 나는 복사하여 내 함수에 코드를 붙여 넣었고 여전히 100 % 두 번째 오류가 발생했습니다. –

+0

이 코드는 작동하지만 대상 디렉토리가 없기 때문에 오류가 발생했습니다. 적어도 당신이 제공 한 오류가 말한 것입니다. 원하는 디렉토리 경로가 파일과 함께 생성되지 않습니다. 포함 된 폴더는 파일 복사 전에 존재해야합니다. – peteb

6

시도 :

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

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

오류 메시지에서 볼 수 있듯이, 대신 현재 디렉토리의 E:\mainisp.jpg에서 파일을 읽으려고하고 있습니다.

또한 대상 폴더뿐만 아니라 파일과 함께 대상 경로를 지정해야합니다.

+0

빠른 답장을 보내 주셔서 감사합니다. src 파일은 javascript 파일의 같은 dir에 있으므로 path는 Html이나 css에서 사용하는 이름 일 수 있습니다. 그리고 나는이 물건을 "파일을 가지고있는 목표 경로"가되게하지 않는다! –

+0

위의 코드를 정확하게 사용해야합니다. 디렉토리의 이미지가 첨부되었습니다! –

+0

@RaoHammasHussain하시기 바랍니다. 대상 경로는'./test/mainisp.jpg' is not from'./test'이어야합니다. 디렉토리뿐만 아니라 파일을 지정해야합니다. – alex030293

관련 문제