实现思路:

首先,表示目录的对象结构应该是这样的,

type treeObj = {"dir": string, // 文件夹路径"childFiles": { //子文件"short": string; // 文件名"full": string; // 完成路径}[],"childDir": { //子文件夹[string]: treeObj}
}

具体细节:

  1. 读取给定的目标文件夹,不是文件夹的另作处理,获取所有文件和文件夹组成的数组;
  2. 循环数组,判断是文件夹还是文件,文件的话直接 push 到 childFiles;
  3. 文件夹的话,先把当前文件夹作为 key,存到父级文件夹的 childDir 属性下,然后自调用传当前文件夹路径;
  4. 以上步骤重复,直到达到最底层空文件夹或该文件夹只有文件;
  5. 根据得到的树形对象,生成 html 文件并写入 dom 节点即可;

查看代码实现,移步至 node-dir-tree

nodejs实现读取本地目录生成文件树相关推荐

  1. iphone app中读取本地txt,csv文件 转载

    原文地址:iphone app中读取本地txt,csv文件 作者:醉吻花颜 - (void)readLocalData { NSString *path = [[NSBundle mainBundle ...

  2. Android读取assets目录下文件数据内容

    Android读取assets目录下文件数据内容 Android的体系架构设计中,assets目录下的数据内容(图片.文件等等)将不会被Android系统压缩.二次处理等,assets目录下的文件 ...

  3. android 读取本地数据库db文件(Android sqlite)

    我们知道Android中有四种数据存储方式: SharedPreference存储 content provider SQLite数据库存储 文件存储 今天我们主要说 本地数据库sqlite这种方式, ...

  4. java读取resouces目录下文件

    resources中存放一些个资源文件,比如properties文件等,编译好会自动将这里边的文件复制到target/classes里去.获取资源文件的方法说明: XXX.class.getResou ...

  5. Linux不能读取目录,关于Linux上面无法读取资源目录下文件的问题

    一开始我的代码是这样子的,读取本地子路径下的json文件 代码运行的时候,在window是可以正常的 @Override public String getBannerStr() { String s ...

  6. Android:读取assets目录下文件(二)

    在上篇博客里,介绍了如何读取assets目录下的txt文件.在这里,介绍如何读取xml文件. xml文件内容如下: <?xml version="1.0" encoding= ...

  7. html 读取本地xml文件,JS读取本地的XML文件

    要想让JS读取本地的XML代码,得具备这样的条件,一般情况下,需要一个JS文件,一个XML文件,最后这两个文件就放在相同的路径下,这样方便调用. 一.XML文件代码示例 大众计算机学习网 www.dz ...

  8. sex 无需下载_js读取本地json格式文件数据的几种实现方法,内有vue读取json示例代码。...

    方法一:通过getJSON实现 getJSON是jquery提供的读取json格式文件的方法 首先我们将html中引入jquery,可以通过百度CDN引入,代码如下: 然后就可以在script中使用g ...

  9. Android JNI开发读取asserts目录中文件的方法

    Android Java层读取asserts目录中的文件: //获取asserts/test/目录下的所有文件名称 String test_path = "test"; int c ...

  10. Oracle使用json后乱码,nodejs读取本地中文json文件出现乱码解决方法

    1. 确定json文件是UTF-8 无BOM编码的的.如果有BOM,会在读取第一行的时候出现乱码. Per "fs.readFileSync(filename, 'utf8') doesn' ...

最新文章

  1. Linux 内核开发资料
  2. DL之DenseNet:DenseNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  3. Hadoop大数据--Mapreduce程序运行并发度
  4. 前端框架:发送请求获取数据的执行逻辑
  5. HTTP 301 跳转和302跳转的区别
  6. iOS UI 开发按钮的使用
  7. LInux学习笔记(四)-----实操排雷
  8. linux重启网卡的命令行,linux系统重启网卡命令
  9. gdb的user-define command
  10. ES9新特性_ES9扩展运算符与rest参数---JavaScript_ECMAScript_ES6-ES11新特性工作笔记053
  11. Linux笔记(shell特殊符号,sort排序,wc统计,uniq去重,tee,tr,split)
  12. Android 4.0 ICS SystemUI浅析——SystemUI启动流程
  13. 软件工程毕设(三)·进度考核表
  14. PMP专题练习-整合管理
  15. 手把手教你进行Python网络爬虫中的Charles+Postern抓包
  16. 建筑企业收并购的三要素
  17. pyside2安装后打开designer.exe文件提示丢失 MSVCP140.dll的处理方法
  18. Engine中如何实现ArcMap中的Split Polygons
  19. Windows XP迎来20岁生日,仍有上百万用户坚守
  20. Android开发丶一步步教你实现okhttp带进度的列表下载文件功能

热门文章

  1. pixel 刷入自己编译的Android 8.0 安装Xposed 显示 Verified Boot (dm-verity) prevents the device from booting
  2. 分享43个职场必备excel函数!(内含详细案例解析及教程参考)
  3. html如何制作扑克,用css制作扑克牌
  4. 反编译工具的安装与使用(解决部分能反编译部分不能反编译)
  5. TracedModule: 更友好的模型表示方案,模型训练到部署的桥梁
  6. 解决Page index must not be less than zero问题
  7. Android设计之UI透明图标
  8. Rabbit基本概念详细介绍
  9. php文章下一页,php获取文章上一页与下一页的方法_php技巧
  10. 【BSP视频教程】STM32H7视频教程第4期:从启动到运行过程全解析,电源域,复位,时钟,软硬件启动流程到堆栈,map和htm文件分析(2022-01-26)