精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Node.JavaScript文件系統中目錄的操作

開發 前端
談到對目錄的操作,需要涉及到對目錄遍歷,其實目錄也是我們可以把它看成一顆樹。樹是一種非線性的數據結構,被用來存儲具有層級關系的數據,還被用來存儲有序列表,其中有一種特殊的樹:二叉樹。

[[351532]]

 談到對目錄的操作,需要涉及到對目錄遍歷,其實目錄也是我們可以把它看成一顆樹。樹是一種非線性的數據結構,被用來存儲具有層級關系的數據,還被用來存儲有序列表,其中有一種特殊的樹:二叉樹。

有一種特殊的二叉樹叫二叉查找樹(BST),其他的特點是:相對較小的值保存在左節點中,較大的值保存在右節點中,因為這個特點使查找的效率特別高。

遍歷二叉查找樹有三種方式:中序,先序和后序

中序:按照節點上的鍵值,已升序訪問樹中所有節點,先訪問左子樹,在訪問根節點,最后訪問右子樹。

中序

先序:先訪問根節點,然后以同樣方式訪問左子樹和右子樹

先序

后序:先訪問葉子節點,從左子樹到右子樹,再到根節點

后序 

還有兩種搜索方法:深度優先搜索和廣度優先搜索

深度優先搜索時從一條路徑的起始頂點開始一直到最后一個頂點,然后回溯,繼續追溯下一條路徑,直到到達最后的頂點,如此往復,知道沒有路徑為止。

深度優先搜索

廣度優先搜索是從第一個頂點開始,首先檢查最靠近第一個頂點的一層,再逐漸向下移動到離起始頂點最遠的一層。

廣度優先搜索 

同步創建目錄

_fs.accessSync_是fs.access的同步方法用于檢查文件是否存在,檢查是否對文件是否有讀寫權限,當操作成功時返回值和異步方法執行成功相同,但操作失敗時會拋出異常。

_fs.mkdirSync_是同步創建目錄

話不多說,我們直接上代碼

  1. let fs = require("fs"); 
  2. let path = require("path"
  3. function mkdirSync(paths){ 
  4.     let arr = paths.split("/"); 
  5.     for(let i=0;i<arr.length;i++){ 
  6.      let currentPath = arr.slice(0,i+1).join("/"); 
  7.         try{  
  8.          fs.accessSync(currentPath) //如果路徑存在  不創建目錄 
  9.         }catch(e){ 
  10.            fs.mkdirSync(currentPath) 
  11.         } 
  12.      } 
  13.  } 
  14.  
  15. mkdirSync("a/b/c/d")  //默認創建目錄  必須父級存在 才能創建子級 

 異步創建目錄

  1. function mkdir(paths,cb){ 
  2.     let arr = paths.split("/"); 
  3.     function next(index){ 
  4.        if(index>=arr.length) return cb(); 
  5.        let currentPath = arr.slice(0,index+1).join("/"); 
  6.        fs.access(currentPath,(err)=>{ 
  7.           if(err){  
  8.               fs.mkdir(currentPath,()=>next(index+1)) 
  9.           }else{   //如果存在則不創建 
  10.               next(index+1) 
  11.           } 
  12.        }) 
  13.     } 
  14.     next(0) 
  15. mkdir("a/b/c/d/e",(err)=>{ 
  16.    console.log("創建完成"); 
  17. }) 

創建目錄 

深度刪除目錄(同步)

fs.stat() 方法用于查詢文件信息,可以用于查詢文件的大小、創建時間、權限等相關信息。fs.stat() 是異步方法,還有一個同步方法 fs.statSync(path)返回一個對象

思路是:一個分支上先刪除兒子再刪除自己,然后到另一個分支上刪除兒子再刪除自己。

  1. function removeSync(dir){ 
  2.    let statObj = fs.statSync(dir) 
  3.    if(statObj.isDirectory()){ 
  4.       let dirs = fs.readdirSync(dir)   //返回一個數組 
  5.     //   console.log(dirs); 
  6.      for(let i = 0;i<dirs.length;i++){ 
  7.         //把路徑進行包裝 
  8.          let current =path.join(dir,dirs[i]) 
  9.          removeSync(current) //刪除兒子節點 再將自己刪除 
  10.      } 
  11.      fs.rmdirSync(dir)  //刪除自己 
  12.    }else
  13.        //文件就刪除 
  14.        fs.unlinkSync(dir) 
  15.    } 
  16. removeSync("a"

 廣度刪除目錄(同步)

思路:通過while循環橫向列出所有文件的路徑,然后通過倒敘刪除。

  1. while(current = arr[index++]){ 
  2.     let statObj = fs.statSync(current); 
  3.     if(statObj.isDirectory()){ 
  4.         let dirs =fs.readdirSync(current); 
  5.         dirs = dirs.map(d=>path.join(current,d)); //當前兒子的文件夾路徑 
  6.         arr = [...arr,...dirs] 
  7.     } 
  8.  } 

結果:[ 'a', 'a\b', 'a\b\c', 'a\b\c\d' ]

  1. function wideSync(dir){ 
  2.    let arr = [dir]; 
  3.    let index = 0; 
  4.    let current; //讀取的當前項目 
  5.    while(current = arr[index++]){ 
  6.       let statObj = fs.statSync(current); 
  7.       if(statObj.isDirectory()){ 
  8.           let dirs =fs.readdirSync(current); 
  9.           dirs = dirs.map(d=>path.join(current,d)); //當前兒子的文件夾路徑 
  10.           arr = [...arr,...dirs] 
  11.       } 
  12.    } 
  13.    //倒敘刪除 
  14.    for(let i = arr.length-1;i>=0;i--){ 
  15.        let current = arr[i] 
  16.        let statObj = fs.statSync(current); 
  17.        if(statObj.isDirectory()){ 
  18.            fs.rmdirSync(current
  19.        }else
  20.            fs.unlinkSync(current
  21.        } 
  22.    } 
  23. wideSync("a"

深度刪除目錄(串行異步) 

  1. function rmdirSeries(dir,callback){ 
  2.     fs.stat(dir,(err,statObj)=>{ 
  3.         if(statObj.isDirectory()){ 
  4.              //讀取文件內容 
  5.              fs.readdir(dir,(err,dirs)=>{ 
  6.                  dirs = dirs.map(d=>path.join(dir,d)) 
  7.                  function next(index){ 
  8.                     if(index == dirs.length) return fs.rmdir(dir,callback) 
  9.                     //先取出數組中的第一個  第一個刪除后  在刪第二個 
  10.                     rmdirSeries(dirs[index],()=>next(index+1)) 
  11.                  } 
  12.                  next(0) 
  13.              }) 
  14.         }else
  15.             fs.unlink(dir,callback) 
  16.         } 
  17.     }) 
  18. rmdirSeries("a",()=>{ 
  19.     console.log("刪除成功"); 
  20. }) 

深度刪除目錄(并行異步)

  1. function removeDirParalle(dir,callback){ 
  2.     fs.stat(dir,(err,statObj)=>{ 
  3.         if(statObj.isDirectory()){ 
  4.              //讀取文件內容 
  5.              fs.readdir(dir,(err,dirs)=>{ 
  6.                  if(dirs.length == 0){ 
  7.                     return fs.rmdir(dir,callback) 
  8.                  } 
  9.                  dirs = dirs.map(d=>{ 
  10.                     let current = path.join(dir,d); 
  11.                     //每個人刪除之后就調用done        
  12.                     removeDirParalle(current,done); 
  13.                     return current 
  14.                  }) 
  15.                  //并發刪除 
  16.                  let index = 0; 
  17.                  function done(){ 
  18.                      if(++index == dirs.length){ 
  19.                         fs.rmdir(dir,callback) 
  20.                      } 
  21.                  } 
  22.              }) 
  23.         }else
  24.             fs.unlink(dir,callback) 
  25.         } 
  26.     }) 
  27. removeDirParalle("a",()=>{ 
  28.     console.log("刪除成功"); 
  29. }) 

 【編輯推薦】

 

責任編輯:姜華 來源: 前端簡報
相關推薦

2010-08-04 17:18:09

nfs文件系統

2010-02-25 14:50:59

Linux文件系統

2010-04-08 15:58:24

Unix操作系統

2010-04-15 16:24:10

Unix操作系統

2010-04-22 14:42:34

Aix操作系統

2009-12-22 11:30:38

Linux操作系統

2009-12-10 14:27:07

Linux操作系統

2017-03-30 10:13:11

Linux內核文件系統

2010-01-08 18:01:03

Ubuntu硬盤操作

2010-04-22 14:45:31

Aix操作系統

2012-06-08 09:16:16

操作系統

2020-07-22 14:53:06

Linux系統虛擬文件

2023-08-05 12:58:51

RPC協議服務端

2019-05-22 09:00:16

Linux虛擬文件系統

2019-05-29 16:33:32

Linux虛擬系統

2017-03-30 11:19:33

Linux文件系統目錄結構

2013-05-27 14:46:06

文件系統分布式文件系統

2022-08-09 15:30:41

Linux

2012-07-05 09:52:06

EFS文件加密

2010-04-30 15:51:48

Unix系統
點贊
收藏

51CTO技術棧公眾號

警花观音坐莲激情销魂小说| 91成人伦理在线电影| 成人免费av片| 素人一区二区三区| 亚洲欧美一区二区三区极速播放| 成人黄色片视频网站| 99久在线精品99re8热| 国产一区二区在线| 日韩一区二区三区观看| 欧美国产亚洲一区| 免费a级在线播放| 成人综合婷婷国产精品久久| 国产成+人+综合+亚洲欧洲| 娇小11一12╳yⅹ╳毛片| 成人在线视频你懂的| 91官网在线观看| 天天做天天躁天天躁| 韩日视频在线| 成人激情动漫在线观看| 国产精品网站入口| 日韩精品久久久久久久| 日韩dvd碟片| 亚洲电影免费观看| 91视频这里只有精品| www.成人爱| 亚洲国产精品一区二区www在线| 亚欧洲精品在线视频免费观看| 亚洲欧美国产高清va在线播放| 免费日本视频一区| 91av在线网站| 欧美人妻一区二区| 水蜜桃久久夜色精品一区| 日韩久久精品成人| 日本wwww色| 亚洲日日夜夜| 欧美午夜精品久久久久久孕妇| av免费观看大全| 亚洲第一图区| 亚洲欧美在线aaa| 热re99久久精品国产99热| 国产综合视频在线| 国产精品白丝av| 成人国产精品免费视频| 中文字幕第三页| 久久精品日产第一区二区| 欧美极品在线视频| 妺妺窝人体色www在线下载| 日韩欧美午夜| 中文字幕在线国产精品| 免费人成又黄又爽又色| 日韩激情网站| 日韩精品高清在线观看| 自拍视频一区二区| 日韩激情毛片| 亚洲人成在线电影| 成人免费无遮挡无码黄漫视频| 天海翼精品一区二区三区| 亚洲第一视频网站| 成人在线电影网站| 澳门成人av| 亚洲国产91精品在线观看| 国产乱淫av麻豆国产免费| 日韩精品三级| 欧美成人乱码一区二区三区| 亚洲精品久久久久久| 亚洲18在线| 91精品国产aⅴ一区二区| 国内自拍第二页| 精品国产欧美| 欧美大片在线观看一区| 黄色av电影网站| 精品亚洲自拍| 亚洲视频在线视频| 亚洲色图欧美色| 久久久9色精品国产一区二区三区| 日韩中文字幕网站| 国产又黄又爽又无遮挡| 欧美粗暴jizz性欧美20| 97福利一区二区| 福利网址在线观看| 国内精品伊人久久久久av一坑| 亚洲综合中文字幕在线| 你懂的网站在线| 国产日韩欧美综合在线| 咪咪色在线视频| av影片在线| 91国在线观看| 天天操夜夜操很很操| silk一区二区三区精品视频| 精品无人区乱码1区2区3区在线| 青青草视频成人| 欧美黄色大片在线观看| 欧美区在线播放| 日本视频网站在线观看| 国产在线视频一区二区| 国产欧美日韩亚洲| 91精品专区| 亚洲高清在线精品| wwwwxxxx日韩| 亚洲一区二区三区免费| 亚洲欧美日韩高清| 国产一区二区播放| 久久精品一区二区国产| 国产在线一区二区三区| 性xxxx18| 亚洲黄色小说网站| www.xxx亚洲| 哺乳一区二区三区中文视频 | 综合干狼人综合首页| xxxxxxxxx欧美| 久一视频在线观看| 免费观看日韩av| 国产精品一区视频| 幼a在线观看| 精品久久久国产| 免费人成视频在线播放| 啪啪亚洲精品| 欧美激情2020午夜免费观看| 欧美一级黄视频| av资源网一区| 日本免费成人网| 亚洲天堂网站| 在线亚洲欧美视频| 国产精品久久久久久久妇| 韩国v欧美v日本v亚洲v| 色视频一区二区三区| 国产精选在线| 欧美成人免费网站| 中国毛片直接看| 男人操女人的视频在线观看欧美| 精品视频免费观看| 久久香蕉一区| 日韩欧美一区在线观看| 激情无码人妻又粗又大| 久久亚洲美女| 女人一区二区三区| 欧美巨大丰满猛性社交| 精品美女一区二区三区| 国产一二三四区| 久久99国产精品免费网站| 日本一区二区高清视频| 亚洲优女在线| 日韩精品视频在线观看免费| 精品深夜av无码一区二区老年| 经典一区二区三区| 中文字幕av久久| 久久精品资源| 日韩在线精品视频| 中文字幕视频免费观看| 欧美国产精品一区| 黄色片在线免费| 精品九九在线| 国产精品一区二区三区久久久 | 91麻豆蜜桃一区二区三区| 日韩精品一区二区免费| www国产精品| 91成人在线视频| 欧美女同网站| 在线亚洲人成电影网站色www| 亚洲人成人无码网www国产 | 国产精品99久久久久久久久久久久| 亚洲欧洲成人在线| 欧美日韩中文字幕综合视频| 国产福利在线观看视频| 久久一综合视频| 日韩亚洲视频| 亚洲资源在线| 久久久久久亚洲精品中文字幕| 亚洲第一免费视频| 天天影视网天天综合色在线播放| 538国产视频| 日本中文字幕一区二区视频| 日韩在线电影一区| 亚洲国产天堂| 欧美激情亚洲视频| 青青草在线免费视频| 色婷婷香蕉在线一区二区| 国产破处视频在线观看| 激情图片小说一区| 2019日韩中文字幕mv| 特黄特色欧美大片| 国产主播欧美精品| 青青在线视频| 亚洲欧美第一页| 国产精品久久久久毛片| 亚洲福中文字幕伊人影院| 国精产品一区一区三区免费视频 | 欧美xxxx×黑人性爽| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲成人一区二区三区| 国产欧美视频在线| 欧美亚洲国产日本| 欧美日韩视频在线播放| 亚洲白虎美女被爆操| 日韩在线 中文字幕| 亚洲天堂2016| 亚洲自拍偷拍一区二区| 国产麻豆日韩欧美久久| 国产成人久久婷婷精品流白浆| 欧美激情黄色片| 精品久久精品久久| 亚洲伊人精品酒店| 全球成人中文在线| 欧美xxxx黑人又粗又长| 中文字幕日韩欧美精品在线观看| 亚洲欧美激情在线观看| 欧美三级电影在线观看| 欧美bbbbbbbbbbbb精品| 最好看的中文字幕久久| 免费看污片网站| 国产成人a级片| 午夜激情在线观看视频| 亚洲大胆av| 中文字幕日韩一区二区三区 | 亚洲欧美另类国产| www三级免费| 欧美日韩高清影院| jizz国产在线观看| 午夜久久福利影院| 免费无遮挡无码永久在线观看视频 | 女人色偷偷aa久久天堂| 午夜午夜精品一区二区三区文| 日韩精品视频在线看| 国产精品久久久久久久电影| 九色porny丨国产首页在线| 欧美丰满老妇厨房牲生活| 亚洲1卡2卡3卡4卡乱码精品| 精品亚洲国产成av人片传媒| 亚洲国产成人在线观看| 91麻豆精品国产91久久久更新时间 | 国产精品无码永久免费不卡| 国产福利电影一区二区三区| 日韩视频在线观看一区二区三区| 久久三级视频| 人妻熟女一二三区夜夜爱| 激情婷婷欧美| 欧美a级免费视频| 亚洲精品99| 伊人情人网综合| 99久久亚洲精品蜜臀| 午夜精品视频在线观看一区二区| 精品中文一区| 欧美亚洲一级二级| 亚洲丝袜啪啪| 欧美综合77777色婷婷| 亚洲国产欧美日韩在线观看第一区| 国产一区在线免费| 卡通动漫精品一区二区三区| 国产传媒一区二区三区| 天堂av一区| 国产91视觉| 国产精品三p一区二区| 国产欧美韩日| 亚洲自拍电影| 日韩国产在线一区| 色综合蜜月久久综合网| 影音先锋在线亚洲| 综合激情视频| 野外做受又硬又粗又大视频√| 亚洲国产1区| 欧美日韩成人免费视频| 国产精品色网| 免费看污污网站| 韩国v欧美v日本v亚洲v| 欧美性猛交乱大交| 不卡一区中文字幕| 男人天堂av电影| 国产精品丝袜在线| 永久免费看片直接| 一区二区三区精品视频在线| 国产无遮挡又黄又爽在线观看| 亚洲6080在线| 无码人妻丰满熟妇区五十路| 欧美亚日韩国产aⅴ精品中极品| 亚洲一级片免费看| 精品少妇一区二区| 日韩偷拍自拍| 色噜噜狠狠狠综合曰曰曰| 调教一区二区| 欧美做爰性生交视频| 久久免费影院| 国产高清不卡av| 精品一区二区三区在线| 亚洲小说欧美另类激情| 国产精品久久久久9999高清| 手机看片一级片| 成人在线视频一区| 国产成人福利在线| 亚洲欧美一区二区三区国产精品 | 亚洲免费影视| 日本黄大片一区二区三区| 国产成人丝袜美腿| 日本少妇高潮喷水xxxxxxx| 亚洲乱码国产乱码精品精98午夜 | 色一情一乱一伦一区二区三区丨| 中国成人一区| 国语对白做受xxxxx在线中国| 国内成+人亚洲+欧美+综合在线| 国产+高潮+白浆+无码| 国产精品午夜电影| 日本五十路女优| 欧美日韩中文国产| 亚洲国产www| 最近免费中文字幕视频2019| 日产福利视频在线观看| 成人动漫网站在线观看| 亚洲黄色录像| 成品人视频ww入口| 激情综合色综合久久综合| 国产在线观看无码免费视频| 亚洲精品成人精品456| 亚洲精品无码久久久久| 亚洲韩国青草视频| 日韩影视在线| 国产啪精品视频网站| 在线日韩网站| 欧美精品久久久久久久自慰 | 亚洲一区二区免费| 国产精品视频一区二区三区四蜜臂| www插插插无码免费视频网站| 蜜桃免费网站一区二区三区| v8888av| 亚洲国产裸拍裸体视频在线观看乱了| 国产有码在线观看| 有码中文亚洲精品| 中文字幕人成乱码在线观看| 成人动漫视频在线观看完整版| 97视频精品| 五月婷婷狠狠操| 国产日本欧洲亚洲| 一级片在线观看免费| 日韩国产欧美区| 18video性欧美19sex高清| 99精品国产高清一区二区| 先锋资源久久| 久久精品久久99| 亚洲欧美日韩综合aⅴ视频| 中文字幕乱码人妻无码久久 | 91亚洲天堂| 91在线高清免费观看| 国产精品麻豆久久| 日韩成人精品视频在线观看| 中文字幕免费不卡在线| 欧美男人天堂网| 国产亚洲一区二区精品| 3d性欧美动漫精品xxxx软件| 欧美一级爱爱| 另类综合日韩欧美亚洲| 97在线观看视频免费| 欧美久久久久免费| 老司机在线视频二区| 亚洲xxxx做受欧美| 欧美日本不卡| 亚洲av人人澡人人爽人人夜夜| 一区二区激情小说| 日本激情一区二区三区| 午夜精品一区二区三区视频免费看| 国产美女撒尿一区二区| 国产成人在线免费看| 久久久久99精品国产片| 少妇无套内谢久久久久| 日韩最新av在线| 国产精品麻豆| 日韩欧美不卡在线| 2024国产精品| 亚洲综合成人av| 久久夜色精品国产| 高清欧美性猛交xxxx黑人猛| 激情综合在线观看| 久久精品一区蜜桃臀影院| 亚洲视频在线观看免费视频| 久久成人18免费网站| jizz18欧美18| 欧美精品无码一区二区三区| 国产嫩草影院久久久久| 国产女无套免费视频| 久久久久久69| 国产一区毛片| 久久aaaa片一区二区| 五月激情综合色| 日本网站在线免费观看视频| 国产精品区二区三区日本| 久久久久久黄| 欧美精品xxxxx| 日韩精品在线免费播放| 精品国产美女a久久9999| 国产美女作爱全过程免费视频| 26uuu色噜噜精品一区二区| 做爰视频毛片视频| 欧美麻豆久久久久久中文| 蜜乳av综合| ass极品水嫩小美女ass| 精品电影在线观看| 调教视频免费在线观看| 国产三级精品在线不卡| 蜜桃视频一区二区三区在线观看| www.av视频在线观看| 日韩综合中文字幕| 妖精视频一区二区三区| 极品人妻一区二区|