node.js递归打印文件目录、文件名

2023-12-08 07:18

本文主要是介绍node.js递归打印文件目录、文件名,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

/**
 * 递归打印文件目录、文件名
 */
var readDir = function(path) {var exists = fs.existsSync(path),
        stat = fs.statSync(path);

    if (exists && stat) { //判断文件、文件目录是否存在
        if (stat.isFile()) {var fpath = path.split(sep);
            console.info(symbol(fpath) + fpath[fpath.length - 1]);
        } else if (stat.isDirectory()) {var fpath = path.split(sep);
            console.info(symbol(fpath) + fpath[fpath.length - 1]);
            var files = fs.readdirSync(path);
            if (files && files.length > 0) {files.forEach(function(file) {readDir(path + sep + file); //递归
                });
            }}} else {console.info('根目录不存在.');
    }
};

//符号拼接。
//为了省事,这里采用了字符串拼接的方式,最优的方式应该用buffer来做字符拼接。
var symbol = function(fpath) {var s = ' - ';
    for (var i = 1; i < fpath.length; i++) {s += ' - ';
    }return s;
};

readDir('node_modules/ccap');

样例:


/usr/local/bin/node test.js
 -  - ccap
 -  -  - .npmignore
 -  -  - .travis.yml
 -  -  - addon
 -  -  -  - cap.cc
 -  -  -  - cap.h
 -  -  -  - hcaptha.cc
 -  -  -  - jpeglib
 -  -  -  -  - CImg.h
 -  -  -  -  - Licence_CeCILL-C_V1-en.txt
 -  -  -  -  - Licence_CeCILL_V2-en.txt
 -  -  -  -  - README.txt
 -  -  -  -  - cderror.h
 -  -  -  -  - cdjpeg.h
 -  -  -  -  - jaricom.c
 -  -  -  -  - jcapimin.c
 -  -  -  -  - jcapistd.c
 -  -  -  -  - jcarith.c
 -  -  -  -  - jccoefct.c
 -  -  -  -  - jccolor.c
 -  -  -  -  - jcdctmgr.c
 -  -  -  -  - jchuff.c
 -  -  -  -  - jcinit.c
 -  -  -  -  - jcmainct.c
 -  -  -  -  - jcmarker.c
 -  -  -  -  - jcmaster.c
 -  -  -  -  - jcomapi.c
 -  -  -  -  - jconfig.h
 -  -  -  -  - jcparam.c
 -  -  -  -  - jcprepct.c
 -  -  -  -  - jcsample.c
 -  -  -  -  - jctrans.c
 -  -  -  -  - jdapimin.c
 -  -  -  -  - jdapistd.c
 -  -  -  -  - jdarith.c
 -  -  -  -  - jdatadst.c
 -  -  -  -  - jdatasrc.c
 -  -  -  -  - jdcoefct.c
 -  -  -  -  - jdcolor.c
 -  -  -  -  - jdct.h
 -  -  -  -  - jddctmgr.c
 -  -  -  -  - jdhuff.c
 -  -  -  -  - jdinput.c
 -  -  -  -  - jdmainct.c
 -  -  -  -  - jdmarker.c
 -  -  -  -  - jdmaster.c
 -  -  -  -  - jdmerge.c
 -  -  -  -  - jdpostct.c
 -  -  -  -  - jdsample.c
 -  -  -  -  - jdtrans.c
 -  -  -  -  - jerror.c
 -  -  -  -  - jerror.h
 -  -  -  -  - jfdctflt.c
 -  -  -  -  - jfdctfst.c
 -  -  -  -  - jfdctint.c
 -  -  -  -  - jidctflt.c
 -  -  -  -  - jidctfst.c
 -  -  -  -  - jidctint.c
 -  -  -  -  - jinclude.h
 -  -  -  -  - jmemmgr.c
 -  -  -  -  - jmemnobs.c
 -  -  -  -  - jmemsys.h
 -  -  -  -  - jmorecfg.h
 -  -  -  -  - jpegint.h
 -  -  -  -  - jpeglib.h
 -  -  -  -  - jquant1.c
 -  -  -  -  - jquant2.c
 -  -  -  -  - jutils.c
 -  -  -  -  - jversion.h
 -  -  -  -  - libjpeg.so
 -  -  -  -  - plugins
 -  -  -  -  -  - add_fileformat.h
 -  -  -  -  -  - cimgIPL.h
 -  -  -  -  -  - cimg_ipl.h
 -  -  -  -  -  - cimgmatlab.h
 -  -  -  -  -  - draw_gradient.h
 -  -  -  -  -  - jpeg_buffer.h
 -  -  -  -  -  - loop_macros.h
 -  -  -  -  -  - nlmeans.h
 -  -  -  -  -  - skeleton.h
 -  -  -  -  -  - vrml.h
 -  -  -  -  -  - vtk.h
 -  -  -  -  - resources
 -  -  -  -  -  - compile_win_icl.bat
 -  -  -  -  -  - compile_win_visualcpp.bat
 -  -  -  -  - transupp.h
 -  -  -  - libjpeg.dll
 -  -  - benchmark
 -  -  -  - generate.js
 -  -  - binding.gyp
 -  -  - build
 -  -  -  - Makefile
 -  -  -  - Release
 -  -  -  -  - .deps
 -  -  -  -  -  - Release
 -  -  -  -  -  -  - hcaptha.node.d
 -  -  -  -  -  -  - obj.target
 -  -  -  -  -  -  -  - hcaptha
 -  -  -  -  -  -  -  -  - addon
 -  -  -  -  -  -  -  -  -  - cap.o.d
 -  -  -  -  -  -  -  -  -  - hcaptha.o.d
 -  -  -  -  - hcaptha.node
 -  -  -  -  - obj.target
 -  -  -  -  -  - hcaptha
 -  -  -  -  -  -  - addon
 -  -  -  -  -  -  -  - cap.o
 -  -  -  -  -  -  -  - hcaptha.o
 -  -  -  - binding.Makefile
 -  -  -  - config.gypi
 -  -  -  - gyp-mac-tool
 -  -  -  - hcaptha.target.mk
 -  -  - cap_img
 -  -  - example
 -  -  -  - custom_get.js
 -  -  -  - custom_get2.js
 -  -  -  - default_get.js
 -  -  -  - web_example.js
 -  -  - index.js
 -  -  - lib
 -  -  -  - dir.js
 -  -  -  - gen.js
 -  -  -  - hcap.js
 -  -  -  - timer.js
 -  -  - make.js
 -  -  - node_modules
 -  -  -  - nan
 -  -  -  -  - .dntrc
 -  -  -  -  - CHANGELOG.md
 -  -  -  -  - LICENSE.md
 -  -  -  -  - appveyor.yml
 -  -  -  -  - include_dirs.js
 -  -  -  -  - nan.h
 -  -  -  -  - nan_implementation_12_inl.h
 -  -  -  -  - nan_implementation_pre_12_inl.h
 -  -  -  -  - nan_new.h
 -  -  -  -  - nan_string_bytes.h
 -  -  -  -  - package.json
 -  -  -  - node-schedule
 -  -  -  -  - .npmignore
 -  -  -  -  - README.md
 -  -  -  -  - lib
 -  -  -  -  -  - increment.js
 -  -  -  -  -  - schedule.js
 -  -  -  -  - package.json
 -  -  -  -  - test
 -  -  -  -  -  - convenience-method-test.js
 -  -  -  -  -  - date-convenience-methods-test.js
 -  -  -  -  -  - job-test.js
 -  -  -  -  -  - range-test.js
 -  -  -  -  -  - recurrence-rule-test.js
 -  -  - package.json
 -  -  - readme.md
 -  -  - test
 -  -  -  - main_test.js


Process finished with exit code 0


这篇关于node.js递归打印文件目录、文件名的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/468994

相关文章

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

Node Linux相关安装

下载经编译好的文件cd /optwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gztar -xvf node-v10.15.3-linux-x64.tar.gzln -s /opt/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/ln -s /opt/nod

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目