zoukankan      html  css  js  c++  java
  • 自己写的一个nodejs查找文件模块-node-find-all-files

    最近在折腾着用node-webkit搭建一个工具,其中要查找路径下的所有文件然后再进行压缩等操作,于是进写了这样的一个模块。代码如下:

    /*
    输入目录找出目录下的所有文件,包括文件夹
    */
    
    /*
    依赖模块 nodejs模块 fs  path
     */
    var fs = require('fs')
        ,path = require('path')
    ;
    
    var shortcuts = {
            'file': 'File'
            ,'dir': 'Directory'
        }
        ,pty = {}
    ;
    Object.keys(shortcuts).forEach(function(key){
        pty[key] = function(fpath){
            var stat = fs.statSync;
            if (fs.existsSync(fpath)) {
                return stat(fpath)['is' + shortcuts[key]]();
            }
            return false;
        }
    });
    
    
    /*
    对目录进行递归
    */
    var subDir = function(parent, cb) {
      if (pty.dir(parent)) {//如果是目录
        fs.readdir(parent, function(err, all) {//读取目录
          all && all.forEach(function(f) {//遍历目录先的文件和文件夹
            var sdir = path.join(parent, f);
            cb.call(null, sdir);
          });
        });
      }
    };
    
    /*
    文件判断并记录
    fpath 为文件路径
    obj 存储对象
    */
    var memoFiles = function(fpath,obj){
        var _dir = path.dirname(fpath);
        if(pty.file(fpath)){
            obj[fpath] = {type:'file',dirname:_dir};// type 类型(文件、文件夹) dirname 上一级的路径
        }else if(pty.dir(fpath)){
            obj[fpath] = {type:'direcotry',dirname:_dir};
            subDir(fpath,function(sdir){
                memoFiles(sdir,obj);
            });
        }
    };
    
    
    /*
    fpath 为文件目录
    */
    var findFiles = function(fpath){
        var allFiles = {};//文件缓存区
        memoFiles(fpath,allFiles);
    
        return allFiles;
    };
    
    module.exports = findFiles;

    本模块依赖的是nodejs自身的模块fs path,不需要安装其他的模块,使用方法就是用nodejs的require即可(require(文件路径)),因本模块没有提交到npm,所以不支持npm安装

  • 相关阅读:
    gsm at 指令
    wm8976 codec
    【Gym 100971J】Robots at Warehouse
    【XDU1144】合并模板
    腾讯云CentOS7安装LNMP+wordpress
    【USACO1.1】Broken Necklace
    【校赛小分队之我们有个女生】训练赛6
    【计导作业】——商品记录
    C 文件读写2
    C 文件读写1
  • 原文地址:https://www.cnblogs.com/subying/p/nodejs-find-all-files.html
Copyright © 2011-2022 走看看