您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)使用NodeJS怎么實(shí)現(xiàn)一個(gè)文件夾拷貝和刪除功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
文件夾拷貝
function CopyDirectory(src, dest) { if (IsFileExist(dest) == false) { fs.mkdirSync(dest); } if (fs.existsSync(src) == false) { return false; } // console.log("src:" + src + ", dest:" + dest); // 拷貝新的內(nèi)容進(jìn)去 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實(shí)現(xiàn)文件的拷貝復(fù)制
var fs = require( 'fs' ), stat = fs.stat; /* * 復(fù)制目錄中的所有文件包括子目錄 * @param{ String } 需要復(fù)制的目錄 * @param{ String } 復(fù)制到指定的目錄 */ 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() ){ // 創(chuàng)建讀取流 readable = fs.createReadStream( _src ); // 創(chuàng)建寫(xiě)入流 writable = fs.createWriteStream( _dst ); // 通過(guò)管道來(lái)傳輸流 readable.pipe( writable ); } // 如果是目錄則遞歸調(diào)用自身 else if( st.isDirectory() ){ exists( _src, _dst, copy ); } }); }); }); }; // 在復(fù)制目錄前需要判斷該目錄是否存在,不存在需要先創(chuàng)建目錄 var exists = function( src, dst, callback ){ fs.exists( dst, function( exists ){ // 已存在 if( exists ){ callback( src, dst ); } // 不存在 else{ fs.mkdir( dst, function(){ callback( src, dst ); }); } }); }; // 復(fù)制目錄 exists( './login', './haha', copy );
關(guān)于使用NodeJS怎么實(shí)現(xiàn)一個(gè)文件夾拷貝和刪除功能就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。