文件夾拷貝
function CopyDirectory(src, dest) { if (IsFileExist(dest) == false) { fs.mkdirSync(dest); } if (fs.existsSync(src) == false) { return false; } // console.log("src:" + src + ", dest:" + dest); // 拷貝新的內容進去 var dirs = fs.readdirSync(src); dirs.forEach(function(item){ var item_path = path.join(src, item); var temp = fs.statSync(item_path); if (temp.isFile()) { // 是文件 // console.log("Item Is File:" + item); fs.copyFileSync(item_path, path.join(dest, item)); } else if (temp.isDirectory()){ // 是目錄 // console.log("Item Is Directory:" + item); CopyDirectory(item_path, path.join(dest, item)); } });}
文件夾刪除
function DeleteDirectory(dir) { if (fs.existsSync(dir) == true) { var files = fs.readdirSync(dir); files.forEach(function(item){ var item_path = path.join(dir, item); // console.log(item_path); if (fs.statSync(item_path).isDirectory()) { DeleteDirectory(item_path); } else { fs.unlinkSync(item_path); } }); fs.rmdirSync(dir); }}
nodejs實現文件的拷貝復制
var fs = require( 'fs' ), stat = fs.stat;/* * 復制目錄中的所有文件包括子目錄 * @param{ String } 需要復制的目錄 * @param{ String } 復制到指定的目錄 */var copy = function( src, dst ){ // 讀取目錄中的所有文件/目錄 fs.readdir( src, function( err, paths ){ if( err ){ throw err; } paths.forEach(function( path ){ var _src = src + '/' + path, _dst = dst + '/' + path, readable, writable; stat( _src, function( err, st ){ if( err ){ throw err; } // 判斷是否為文件 if( st.isFile() ){ // 創建讀取流 readable = fs.createReadStream( _src ); // 創建寫入流 writable = fs.createWriteStream( _dst ); // 通過管道來傳輸流 readable.pipe( writable ); } // 如果是目錄則遞歸調用自身 else if( st.isDirectory() ){ exists( _src, _dst, copy ); } }); }); });};// 在復制目錄前需要判斷該目錄是否存在,不存在需要先創建目錄var exists = function( src, dst, callback ){ fs.exists( dst, function( exists ){ // 已存在 if( exists ){ callback( src, dst ); } // 不存在 else{ fs.mkdir( dst, function(){ callback( src, dst ); }); } });};// 復制目錄exists( './login', './haha', copy );
總結
以上所述是小編給大家介紹的NodeJS 文件夾拷貝及刪除功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
新聞熱點
疑難解答