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

相关文章

SpringBoot内嵌Tomcat临时目录问题及解决

《SpringBoot内嵌Tomcat临时目录问题及解决》:本文主要介绍SpringBoot内嵌Tomcat临时目录问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录SprinjavascriptgBoot内嵌Tomcat临时目录问题1.背景2.方案3.代码中配置t

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no