欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js 使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件

 更新時(shí)間:2017年09月18日 22:23:38   作者:younglao  
這篇文章主要介紹了Node.js使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件,需要的朋友可以參考下

如標(biāo)題所示,遍歷文件夾下的所有文件,主要功能如下:

傳入一個(gè)路徑,讀取路徑里面所有的文件
遍歷讀取的文件,判斷當(dāng)前文件是文件還是文件夾
當(dāng)前目錄為文件,打印出當(dāng)前文件絕對(duì)路徑
當(dāng)前目錄為文件夾,獲取文件夾路徑,繼續(xù)讀取路徑下文件
遍歷完目錄中的所有文件為止
代碼中用到的幾個(gè)方法

path.resolve(path)

一個(gè)路徑或路徑片段解析成一個(gè)絕對(duì)路徑,返回解析后的路徑字符串
fs.readdir(path[,option],callback)

讀取目錄下面的文件,返回目錄下的文件列表對(duì)象,如果傳入的是個(gè)文件,返回這個(gè)文件

fs.stat(path,callback)

獲取文件信息對(duì)象Stats,包括文件大小,gid等信息

stats.isFile()

文件信息對(duì)象Stats的一個(gè)方法,判斷當(dāng)前文件是不是一個(gè)文件

stats.isDirectory()

文件信息對(duì)象Stats的一個(gè)方法,判斷當(dāng)前文件是不是一個(gè)文件夾

代碼和注釋如下:

var fs = require('fs');
var path = require('path');

//解析需要遍歷的文件夾,我這以E盤根目錄為例
var filePath = path.resolve('E:');

//調(diào)用文件遍歷方法
fileDisplay(filePath);

/**
 * 文件遍歷方法
 * @param filePath 需要遍歷的文件路徑
 */
function fileDisplay(filePath){
  //根據(jù)文件路徑讀取文件,返回文件列表
  fs.readdir(filePath,function(err,files){
    if(err){
      console.warn(err)
    }else{
      //遍歷讀取到的文件列表
      files.forEach(function(filename){
        //獲取當(dāng)前文件的絕對(duì)路徑
        var filedir = path.join(filePath,filename);
        //根據(jù)文件路徑獲取文件信息,返回一個(gè)fs.Stats對(duì)象
        fs.stat(filedir,function(eror,stats){
          if(eror){
            console.warn('獲取文件stats失敗');
          }else{
            var isFile = stats.isFile();//是文件
            var isDir = stats.isDirectory();//是文件夾
            if(isFile){
              console.log(filedir);
            }
            if(isDir){
              fileDisplay(filedir);//遞歸,如果是文件夾,就繼續(xù)遍歷該文件夾下面的文件
            }
          }
        })
      });
    }
  });
}

運(yùn)行結(jié)果為:

E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\AbstractCacheInvoker.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\AbstractCacheResolver.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\BasicOperation.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheableOperation.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\BeanFactoryCacheOperationSourceAdvisor.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\AbstractFallbackCacheOperationSource.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheAspectSupport.CacheOperationContext.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheAspectSupport.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheAspectSupport.CacheOperationMetadata.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheErrorHandler.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheEvictOperation.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheInterceptor.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheOperation.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheOperationInvocationContext.html
E:\jars\spring-framework-4.2.9.RELEASE\docs\javadoc-api\org\springframework\cache\interceptor\CacheOperationInvoker.html
············

到這Node.js 遍歷文件夾的實(shí)現(xiàn)方法就結(jié)束了,希望大家以后多多支持腳本之家。

相關(guān)文章

  • node koa2 ssr項(xiàng)目搭建的方法步驟

    node koa2 ssr項(xiàng)目搭建的方法步驟

    這篇文章主要介紹了node koa2 ssr項(xiàng)目搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Node.js服務(wù)器環(huán)境下使用Mock.js攔截AJAX請(qǐng)求的教程

    Node.js服務(wù)器環(huán)境下使用Mock.js攔截AJAX請(qǐng)求的教程

    Mock.js這個(gè)JavaScript庫最常見的用法便是被用來攔截AJAX請(qǐng)求,well,這里我們就來看一下Node.js服務(wù)器環(huán)境下使用Mock.js攔截AJAX請(qǐng)求的教程:
    2016-05-05
  • Node.js 路由的實(shí)現(xiàn)方法

    Node.js 路由的實(shí)現(xiàn)方法

    這篇文章主要介紹了Node.js 路由的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Node.js包管理器Yarn的入門介紹與安裝

    Node.js包管理器Yarn的入門介紹與安裝

    大家都知道在yarn發(fā)布之前,所有Nodejs開發(fā)者用的都是npm包管理工具,而npm工具存在挺多難以忍受的詬病,包括安裝速度慢、每次都要在線重新安裝等問題,而yarn也是為了解決npm當(dāng)前所存在的問題而出現(xiàn)的。本文給大家介紹了包管理器Yarn,以及安裝方法。下面來一起看看。
    2016-10-10
  • nestjs搭建HTTP與WebSocket服務(wù)詳細(xì)過程

    nestjs搭建HTTP與WebSocket服務(wù)詳細(xì)過程

    這篇文章主要介紹了nestjs搭建HTTP與WebSocket服務(wù)詳細(xì)過程的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼

    詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼

    本篇文章主要介紹了詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • node使用UEditor富文本編輯器的方法實(shí)例

    node使用UEditor富文本編輯器的方法實(shí)例

    本篇文章主要介紹了node使用UEditor富文本編輯器的方法實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • 在Mac OS下使用Node.js的簡(jiǎn)單教程

    在Mac OS下使用Node.js的簡(jiǎn)單教程

    這篇文章主要介紹了在Mac OS下使用Node.js的簡(jiǎn)單教程,Node.js是讓JavaScript應(yīng)用運(yùn)行于服務(wù)器端的框架,需要的朋友可以參考下
    2015-06-06
  • node.js結(jié)合webSocket實(shí)現(xiàn)聊天室

    node.js結(jié)合webSocket實(shí)現(xiàn)聊天室

    于Node.js和WebSocket的聊天室,主要包括前端頁面,主要是用戶操作的頁面,還包括后臺(tái)數(shù)據(jù)通信以及邏輯處理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • npm與nrm兩種方式查看源和切換鏡像詳解

    npm與nrm兩種方式查看源和切換鏡像詳解

    nrm(npm registry manager )是npm的鏡像源管理工具,它可以快速在讓你在本地源之間切換,下面這篇文章主要給大家介紹了關(guān)于npm與nrm兩種方式查看源和切換鏡像的相關(guān)資料,需要的朋友可以參考下
    2023-02-02

最新評(píng)論