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);
// 拷貝新的內(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)建寫入流
writable = fs.createWriteStream( _dst );
// 通過管道來傳輸流
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 );
總結(jié)
以上所述是小編給大家介紹的NodeJS 文件夾拷貝及刪除功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- nodejs如何獲取指定路徑下所有的文件夾名或類型
- 純異步nodejs文件夾(目錄)復(fù)制功能
- nodejs文件夾深層復(fù)制功能
- nodejs對(duì)項(xiàng)目下所有空文件夾創(chuàng)建gitkeep的方法
- nodejs實(shí)現(xiàn)獲取本地文件夾下圖片信息功能示例
- nodejs遍歷文件夾下并操作HTML/CSS/JS/PNG/JPG的方法
- NodeJS 將文件夾按照存放路徑變成一個(gè)對(duì)應(yīng)的JSON的方法
- Nodejs實(shí)現(xiàn)多文件夾文件同步
- nodejs判斷文件、文件夾是否存在及刪除的方法
- Nodejs 復(fù)制文件/文件夾的方法
- nodejs實(shí)現(xiàn)遍歷文件夾并統(tǒng)計(jì)文件大小
- nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例
相關(guān)文章
Visual?Studio?Code中npm腳本找不到圖文解決辦法
這篇文章主要給大家介紹了關(guān)于Visual?Studio?Code中npm腳本找不到的圖文解決辦法,做前端開發(fā)如果項(xiàng)目達(dá)到了一定的規(guī)模就離不開npm了,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋
這篇文章主要介紹了node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋的操作方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05
Windows部署NVM并下載多版本Node.js的方法(含刪除原有Node的方法)
這篇文章主要介紹了Windows部署NVM并下載多版本Node.js的方法(含刪除原有Node的方法),文中通過圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家了解Node.js有一定的幫助,需要的朋友可以參考下2025-01-01
Node.js實(shí)現(xiàn)用戶身份驗(yàn)證和授權(quán)的示例代碼
在web開發(fā)中,我們常常需要對(duì)一些敏感的url進(jìn)行訪問權(quán)限控制,本文主要介紹了Node.js實(shí)現(xiàn)用戶身份驗(yàn)證和授權(quán)的示例代碼,具有一定的參考價(jià)值,感興趣的了解一下2024-02-02

