windowns下生成目录结构树形图

需求

在windows下想要生成某一文件夹的目录结构树形图,方便直观查看和分析。

实现

直接在命令行中通过tree命令,就可实现该功能。

比如我想列出E:data\root_dir的目录图。那么就在root_dir目录下打开cmd或powershell,输入tree /f,结果如下:

PS E:\data\root_dir> tree /f
卷 文档 的文件夹 PATH 列表
卷序列号为 000D-E0CB
E:.
│  file1.txt
│  file2.txt
│  file3.txt
│  main.py
│
├─sub_dir1
│      file4.txt
│      file5.txt
│
└─sub_dir2
        file6.txt
        file7.txt
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 `for` 循环来生成树形结构的示例代码: ```html <ul id="tree"></ul> ``` ```javascript const data = [ { id: 1, name: '节点1', parentId: 0 }, { id: 2, name: '节点2', parentId: 1 }, { id: 3, name: '节点3', parentId: 1 }, { id: 4, name: '节点4', parentId: 2 }, { id: 5, name: '节点5', parentId: 2 }, { id: 6, name: '节点6', parentId: 4 }, { id: 7, name: '节点7', parentId: 4 }, ]; function createTree(data) { const map = {}; const roots = []; data.forEach(item => { const node = { id: item.id, name: item.name, children: [] }; map[item.id] = node; if (item.parentId === 0) { roots.push(node); } else { const parent = map[item.parentId]; parent.children.push(node); } }); return roots; } function renderTree(node, level) { const ul = document.createElement('ul'); node.forEach(item => { const li = document.createElement('li'); const text = document.createTextNode(item.name); li.appendChild(text); ul.appendChild(li); if (item.children.length > 0) { const childrenUl = renderTree(item.children, level + 1); childrenUl.style.marginLeft = `${level * 20}px`; li.appendChild(childrenUl); } }); return ul; } const tree = createTree(data); const treeEl = document.getElementById('tree'); treeEl.appendChild(renderTree(tree, 0)); ``` 上面的代码首先定义了一个包含节点数据的数组 `data`,然后定义了一个 `createTree` 函数,用于将节点数据转换为树形结构。在 `createTree` 函数中,我们使用了一个 `map` 对象来存储每个节点的引用,然后遍历每个节点,如果它是根节点,则将其添加到 `roots` 数组中,否则找到它的父节点,将其添加到父节点的 `children` 数组中。 接下来,我们定义了一个 `renderTree` 函数,用于将树形结构渲染为 HTML。在 `renderTree` 函数中,我们使用 `document.createElement` 方法创建 `ul` 和 `li` 元素,然后遍历每个节点,将节点的名称添加到 `li` 中,然后递归调用 `renderTree` 函数,将子节点渲染为 HTML,并将其添加到当前节点的 `li` 元素中。最后,我们将根节点渲染为 HTML,并将其添加到页面中的 `ul` 元素中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值