您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關使用NodeJS怎么實現一個文件夾拷貝和刪除功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
文件夾拷貝
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怎么實現一個文件夾拷貝和刪除功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。