nodejs文件夾深層復(fù)制功能
前段時間接到領(lǐng)導(dǎo)要求,運營那邊會時不時的給我一些.html文件,讓我呢把里面的某些東西給解析出來插入到數(shù)據(jù)庫。本來就是解析dom元素,然后插入,可是有點麻煩的是運營給我的文件都是多層級的:比如下面的:


我所需要是將運營給的文件夾中每個文件都復(fù)制到某個文件夾中(test),然后取test中所有文件進行解析。開始的時候本人崩著能吃苦耐勞的精神,每次都是復(fù)制粘貼,可是這是容易出錯不說,關(guān)鍵我們是個程序員啊,就應(yīng)該用程序員的方式來解決嘛。有些同志會說這很簡單啊 找到'E:819數(shù)據(jù)819'這個文件夾,將它內(nèi)部的每個文件夾讀出來組成一個數(shù)組,在循環(huán)遍歷里面的每個文件進行復(fù)制就可以了啊
fs.readdir('E:/819數(shù)據(jù)/819','utf-8',(err,fileList)=>{
fileList.forEach((file,index)=>{
let url = from+file+'/'
fs.readdir(from+file,'utf-8',(error,singleFile)=>{
singleFile.forEach((fileInner,i)=>{
fs.writeFileSync(`${to}${name++}.html`, fs.readFileSync(url+fileInner));
})
})
})
})
這就是上面的代碼實現(xiàn),開始我也是圖省事就這樣寫了(把運營同事給的文件夾中所有文件復(fù)制到我的test目錄中),可是mmp后來發(fā)現(xiàn)有的文件會有多重文件夾的嵌套
這時候就不能在一層的一層的判斷了,萬一運營給的嵌套10層,總不能為了每個文件夾的復(fù)制寫一串代碼吧,這里只能使用遞歸來解析了。
let name = 1
copyItDigui('E:/819數(shù)據(jù)/819','E:/test/');
function copyItDigui(from, to) {
searchFile(from, to);
}
function searchFile(from, to){
let stat = fs.lstatSync(from);
if(stat.isDirectory()){//判斷是文件夾就繼續(xù)下面的遍歷,否則直接進行文件的復(fù)制和重名了
fs.readdir(from,'utf-8',(err,fileList)=>{
fileList.forEach((file,index)=>{
searchFile(from+"/"+file,to)
})
})
}else{
fs.writeFileSync(`${to}${name++}.html`, fs.readFileSync(from));//這里是執(zhí)行文件的復(fù)制,下面的是大文件的復(fù)制
//fs.writeFileSync(to, fs.readFileSync(from));
//fs.createReadStream(src).pipe(fs.createWriteStream(dst));大文件復(fù)制
}
}
這里沒有用ts來寫,可能看上去有些凌亂,但是都寫了注釋,相信聰明的你一定看得懂。執(zhí)行完代碼后,復(fù)制就完成了,大功告成。
完全按照預(yù)想的結(jié)果,現(xiàn)在發(fā)現(xiàn),即使我們是前端程序員,會點nodejs,還是蠻有用的,可以增強自己的成就感
總結(jié)
以上所述是小編給大家介紹的nodejs文件夾深層復(fù)制功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- nodejs如何獲取指定路徑下所有的文件夾名或類型
- NodeJS 文件夾拷貝以及刪除功能
- 純異步nodejs文件夾(目錄)復(fù)制功能
- nodejs對項目下所有空文件夾創(chuàng)建gitkeep的方法
- nodejs實現(xiàn)獲取本地文件夾下圖片信息功能示例
- nodejs遍歷文件夾下并操作HTML/CSS/JS/PNG/JPG的方法
- NodeJS 將文件夾按照存放路徑變成一個對應(yīng)的JSON的方法
- Nodejs實現(xiàn)多文件夾文件同步
- nodejs判斷文件、文件夾是否存在及刪除的方法
- Nodejs 復(fù)制文件/文件夾的方法
- nodejs實現(xiàn)遍歷文件夾并統(tǒng)計文件大小
- nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例
相關(guān)文章
詳解如何在NodeJS應(yīng)用程序中處理多個API請求
NodeJS默認(rèn)是異步的,這意味著它已經(jīng)能夠同時處理多個請求,但它只適用于I/O操作,如HTTP請求、文件系統(tǒng)操作、數(shù)據(jù)庫查詢、實時聊天應(yīng)用等,在處理CPU密集型任務(wù)時,可能需要很長時間,這就是為什么NodeJS提供了一些我們將在下面介紹的特定包2023-12-12
從零開始學(xué)習(xí)Node.js系列教程四:多頁面實現(xiàn)數(shù)學(xué)運算的client端和server端示例
這篇文章主要介紹了Node.js多頁面實現(xiàn)數(shù)學(xué)運算的client端和server端,結(jié)合具體實例形式分析了nodejs客戶端提交與服務(wù)端處理實現(xiàn)數(shù)學(xué)運算的相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
npm一鍵安裝Python以及node-sass依賴環(huán)境的方法
Node-sass是一個庫,它將Node.js綁定到LibSass,下面這篇文章主要給大家介紹了關(guān)于npm一鍵安裝Python以及node-sass依賴環(huán)境的相關(guān)資料,文中還介紹了安裝node-sass報錯Python環(huán)境問題避坑指南,需要的朋友可以參考下2022-09-09
使用nodejs?+?koa?+?typescript?集成和自動重啟的問題
這篇文章主要介紹了nodejs?+?koa?+?typescript?集成和自動重啟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12

