2011-02-12 63 views
25

如何在Node.js中複製文件?如何複製文件?

+ /old 
|- image.png 
+ /new 

我想從 '老' image1.png複製到 '新' 目錄。

這不起作用。

newFile = fs.createWriteStream('./new/image2.png');  
oldFile = fs.createReadStream('./old/image1.png'); 

oldFile.addListener("data", function(chunk) { 
    newFile.write(chunk); 
}) 

oldFile.addListener("close",function() { 
    newFile.end(); 
}); 

感謝您的回覆!

+0

這裏有什麼嗎? http://nodejs.org/api.html#fs-readstream-152 http://nodejs.org/api.html#fs-writestream-154 – mplungjan 2011-02-12 19:58:19

+0

@mplungjan我剛剛更新了我的問題。 – 2011-02-12 20:02:26

+0

剛剛更新了我的評論;) – mplungjan 2011-02-12 20:03:36

回答

7
newFile.once('open', function(fd){ 
    require('util').pump(oldFile, newFile); 
});  
14

目前的首選方式:

​​
-3
fs.rename('./old/image1.png', './new/image2.png', function(err){ 
    if(err) console.log(err); 
    console.log("moved"); 
}); 
6

如果你想syncronously做這個工作,只是讀出,然後直接寫入文件:

var copyFileSync = function(srcFile, destFile, encoding) { 
    var content = fs.readFileSync(srcFile, encoding); 
    fs.writeFileSync(destFile, content, encoding); 
} 

當然,錯誤處理和東西總是一個好主意!