精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

av中文字幕在线观看第一页| 你懂的网站在线| 91欧美国产| 欧美一区二区精美| 国产妇女馒头高清泬20p多| 水中色av综合| 激情图片小说一区| 国模私拍视频一区| 微拍福利一区二区| 亚洲精品一区二区三区中文字幕| 欧美日韩免费看| 亚洲精品自在在线观看| 亚洲国产精品久久久久久6q| 免费视频一区| 伦伦影院午夜日韩欧美限制| 国产精品无码一区二区三区免费| 欧美成人福利| 五月天亚洲婷婷| 在线观看日韩羞羞视频| 亚洲色大成网站www| 毛片av中文字幕一区二区| 欧美国产日韩中文字幕在线| 精品无码国产污污污免费网站| 韩国三级大全久久网站| 色综合久久精品| 国产黄色激情视频| 在线国产91| 97国产一区二区| 69174成人网| 亚洲综合精品在线| 午夜综合激情| 久久久久久18| 成年人一级黄色片| 日韩精品一卡| 亚洲色图第三页| 欧美双性人妖o0| 视频在线亚洲| 欧美精品乱码久久久久久按摩| 久久婷婷国产精品| 蜜桃视频动漫在线播放| 亚洲精品v日韩精品| 日韩精品一区二区三区外面| 无码国产伦一区二区三区视频| 国产精品一区二区免费不卡| 国产日韩av在线播放| 国产精品第6页| 丝袜脚交一区二区| 欧美在线视频网| 日韩欧美亚洲视频| 亚洲高清久久| 久久久视频精品| 久久高清无码视频| 欧美女激情福利| 久久亚洲国产精品成人av秋霞| av资源在线免费观看| 菠萝蜜一区二区| 永久免费精品影视网站| 国产jk精品白丝av在线观看| 伊人久久大香线蕉综合网蜜芽 | 中文区中文字幕免费看| 久久国产精品久久w女人spa| 91国产精品视频在线| 国产在线综合网| 亚洲黄色成人| 4438全国成人免费| 欧美一级淫片免费视频黄| 免播放器亚洲| 国产成人精品午夜| 国产成人a v| 麻豆精品在线观看| 91久久久久久久一区二区| 国产精品视频一区二区三区,| 精品中文字幕一区二区| 91免费的视频在线播放| 精品国产九九九| 成人激情av网| 免费看成人午夜电影| 国产视频网站在线| 1000部国产精品成人观看| 伊人网在线免费| a'aaa级片在线观看| 欧美性xxxxx| 天堂一区在线观看| 日韩一区网站| 日韩国产高清视频在线| 国产午夜福利一区| 欧美69视频| 91爱爱小视频k| 国产乡下妇女三片| 国产黑丝在线一区二区三区| 好看的日韩精品| 91啦中文在线| 亚洲电影第三页| 一区二区三区视频在线观看免费| 97精品资源在线观看| 欧美电影免费提供在线观看| 精品人妻一区二区三区视频| 欧美国产一级| 久久久久久久av| 欧美日韩在线视频播放| 国产精品亚洲专一区二区三区 | 国产日产精品一区二区三区四区的观看方式 | 草草视频在线一区二区| 亚洲午夜国产成人av电影男同| 91香蕉一区二区三区在线观看| 亚洲高清激情| 成人妇女淫片aaaa视频| 天天干天天草天天射| 国产精品麻豆一区二区| 你懂的av在线| 成人久久精品| 在线观看视频99| 国产网站在线看| 久久99精品一区二区三区| 国内视频一区二区| gogogogo高清视频在线| 色视频欧美一区二区三区| 精品人妻一区二区三区免费| av亚洲在线观看| 9.1国产丝袜在线观看| 国产口爆吞精一区二区| 国产日韩三级在线| 国产午夜大地久久| 日韩视频1区| 日韩中文在线不卡| 日本黄色一级视频| aa级大片欧美| 久久www视频| 日韩国产91| 国产一区二区三区在线看| 日本天堂在线视频| 国产成人日日夜夜| www亚洲国产| 国产精品诱惑| 在线播放精品一区二区三区 | 91亚洲国产成人精品性色| 国产二区视频在线观看| 精品高清一区二区三区| 黄色av电影网站| 国产精品v亚洲精品v日韩精品 | 久久久亚洲午夜电影| 隔壁人妻偷人bd中字| 久久爱www.| 久久国产精品99国产精| 91国内精品视频| 中文av一区二区| 男女污污的视频| 亚洲人成精品久久久| 97视频在线观看视频免费视频 | 日本高清www免费视频| 国产成人超碰人人澡人人澡| 91视频成人免费| 日韩08精品| 欧美激情一二区| 好男人在线视频www| 一区二区三区在线不卡| 黄色a级三级三级三级| 99久久99视频只有精品| 国产精品综合不卡av| 日本不卡不卡| 91精品在线免费| 免费一级片在线观看| 高清在线不卡av| 欧美爱爱视频免费看| 日韩av中文字幕一区| 热re91久久精品国99热蜜臀| 草碰在线视频| 欧美欧美午夜aⅴ在线观看| 亚洲不卡的av| 国产一区二区三区精品欧美日韩一区二区三区 | 爱情岛论坛成人| 日韩高清欧美| 亚洲一区久久久| 电影在线观看一区| 亚洲欧美激情视频| 中文字幕日日夜夜| 亚洲免费三区一区二区| 中文字幕无人区二| 国产一区二区三区的电影| 欧美一级片免费观看| 成人免费视频观看| 欧美猛交ⅹxxx乱大交视频| 亚洲欧美激情国产综合久久久| 欧美日韩一区二区精品| youjizz亚洲女人| 国产精品一区二区三区乱码| 精品欧美一区免费观看α√| 黄色不卡一区| 91精品久久香蕉国产线看观看| av在线最新| 色悠悠久久久久| 日韩一级免费视频| 欧美在线观看一二区| 99热精品免费| 久久精品亚洲麻豆av一区二区 | 一区二区在线视频播放| 国产免费黄色大片| 粉嫩av一区二区三区免费野| 亚洲综合第一区| www.欧美.com| 亚洲欧美aaa| 亚洲一区日本| 欧美 亚洲 视频| 国产一区不卡| 国产一区自拍视频| 青青草国产一区二区三区| 97免费视频在线播放| 日韩伦理在线观看| 日韩精品亚洲视频| 99riav国产| 欧美影视一区二区三区| 国产乡下妇女做爰视频| 国产精品免费aⅴ片在线观看| 丰满少妇xbxb毛片日本| 美女在线视频一区| 国产亚洲精品网站| 狠狠爱综合网| 午夜啪啪福利视频| 日韩成人精品一区二区| 久久久精品国产一区二区三区| 亚洲二区av| 国产精品主播视频| 88xx成人永久免费观看| 国产做受高潮69| free性欧美hd另类精品| 最近的2019中文字幕免费一页| 天堂中文在线资| 精品国产成人在线影院| 99久久国产免费| 欧美日韩成人综合在线一区二区 | 欧美日产在线观看| 中文字幕一区二区三区四区欧美| 亚洲aaa精品| 国产精彩视频在线| 一区二区三区日韩| 日韩一区二区三区四区在线| 中文字幕一区在线| 日韩影视一区二区三区| 久久综合九色综合97婷婷| 青青草视频网站| www..com久久爱| 国产原创剧情av| 成人午夜大片免费观看| 4438x全国最大成人| 国产精品系列在线观看| 91亚洲一区二区| 国内精品视频一区二区三区八戒| 午夜宅男在线视频| 久久国产福利国产秒拍| 久久国产这里只有精品| 精品综合久久久久久8888| 亚洲av无日韩毛片久久| 国产一区二区三区免费| 中文字幕制服丝袜| 丁香另类激情小说| 国产高清成人久久| 久久夜色精品国产噜噜av| 欧美老熟妇乱大交xxxxx| 久久久噜噜噜久久人人看| 精品人妻一区二区三区四区| 国产欧美日韩三级| av在线免费播放网址| 日韩一区有码在线| 久草福利资源在线观看| 亚洲国产美国国产综合一区二区| 日本三级视频在线| 色综合网色综合| 中文字幕在线观看第二页| 欧美日韩国产一级| 超碰人人人人人人| 亚洲精品国产综合久久| 国产精品一二三区视频| 久久中文精品视频| a在线视频v视频| 国产成人精品视频在线观看| 欧美午夜三级| 成人av资源| 中文有码一区| 最近中文字幕免费mv| 国内精品福利| 精品久久久噜噜噜噜久久图片| 看国产成人h片视频| 亚洲国产综合av| 91色porny蝌蚪| 日本美女bbw| 一区二区三区91| 久久99国产综合精品免费| 欧美性猛片aaaaaaa做受| 精品国产av一区二区| 日韩国产精品亚洲а∨天堂免| 第一页在线观看| 久久国产精品影视| 欧美日韩大片| 97超碰人人模人人爽人人看| 欧美精品momsxxx| 一二三在线视频| 久久三级视频| 精品国产免费久久久久久婷婷| 久久欧美中文字幕| 久久久久久久久久久久久女过产乱| 图片区小说区国产精品视频| 中文字幕一区二区免费| 精品国产乱码久久久久久久 | 精品自拍偷拍| 在线视频91| 翔田千里一区二区| 又黄又色的网站| 国产精品久久久久影视| 日韩精品一区三区| 制服丝袜激情欧洲亚洲| 青青青草原在线| 国内精品久久影院| 国产成年精品| 亚洲v国产v在线观看| 日韩午夜一区| 韩国三级与黑人| 国产精品少妇自拍| 成人免费毛片视频| 日韩国产精品亚洲а∨天堂免| 亚洲h片在线看| 成人女保姆的销魂服务| re久久精品视频| 免费黄色日本网站| 成人午夜电影网站| 激情五月婷婷在线| 欧美一区二区三区精品| av二区在线| 国产97在线|亚洲| 欧美日韩夜夜| 免费无码毛片一区二三区| 国产精品中文字幕日韩精品| 欧洲美女女同性互添| 欧美色精品在线视频| 国产午夜精品一区理论片| 26uuu国产精品视频| 琪琪久久久久日韩精品| 中国丰满熟妇xxxx性| 国产99久久久国产精品潘金 | 暖暖视频在线免费观看| 91禁外国网站| 欧美顶级毛片在线播放| 日b视频免费观看| 成人一区二区三区视频在线观看| 日本一二三区在线观看| 欧美人与性动xxxx| 欧美激情黑人| 成人亚洲激情网| 久久精品欧美一区| √天堂资源在线| 亚洲精品亚洲人成人网| 国产三级漂亮女教师| 日韩视频免费看| 国内不卡的一区二区三区中文字幕| 在线免费一区| 国产精品白丝av| 久久久久人妻一区精品色欧美| 日韩三级av在线播放| 欧美人与性动交α欧美精品图片| 都市激情久久久久久久久久久| 国内精品久久久久久久影视麻豆 | 日韩视频免费播放| 99久久99久久久精品齐齐| 日本午夜视频在线观看| 亚洲人成77777在线观看网| 亚洲成人一区在线观看| 一区二区不卡在线视频 午夜欧美不卡'| 美国毛片一区二区| 久久久久久久久毛片| 亚洲第一视频网| 成人性生交大片免费网站| 午夜精品一区二区三区在线观看 | 国产免费一区二区三区香蕉精| 色综合蜜月久久综合网| 在线观看中文av| 欧美日韩美女在线| av大全在线免费看| 97超碰人人模人人爽人人看| 亚洲一区观看| 国产黄色片在线| 欧美mv和日韩mv国产网站| 涩涩av在线| 吴梦梦av在线| 99re热视频精品| 亚洲图片在线播放| 久久久久国产精品免费| 国内精品久久久久久久影视简单 | 伊人av综合网| 欧美日韩黄色| jizzjizzxxxx| 亚洲精品成a人| 高清毛片在线看| 国产精华一区| 麻豆精品新av中文字幕| 国产在线观看成人| 中日韩美女免费视频网站在线观看 | 午夜影视日本亚洲欧洲精品| 岛国大片在线观看| 国产精品免费观看高清| 日韩国产欧美在线观看| 中文字幕第28页|