在 index.html 需要以树形显示目录名称
时间: 2024-09-09 13:15:50 浏览: 47
filetree以树形结构显示文件目录结构
如果你想在 `index.html` 中以树形结构显示目录名称,可以稍微修改一下 `index.html` 的结构,并添加递归函数来生成树状列表。这里提供一个简化的例子,假设每个目录都有一个名为 "parent_dir" 的属性来表示其父目录:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Directory Tree Viewer</title>
<script>
function buildTree(dirs, parentDir='') {
let treeDiv = document.getElementById('tree');
dirs.forEach(item => {
let folderName = item;
let folderLink = `<a href="/directory/${parentDir}/${folderName}" class="folder">${folderName}</a>`;
if (item.parent_dir !== '') {
folderLink += '<ul class="subfolders">';
buildTree(dirs.filter(d => d.parent_dir === folderName), folderName);
folderLink += '</ul>';
}
treeDiv.innerHTML += `${folderLink} <br>`;
});
}
</script>
</head>
<body onload="buildTree(os.listdir(path))">
<div id="tree"></div>
<!-- 当点击目录时,显示子目录 -->
<style>
.folder {
cursor: pointer;
}
</style>
</body>
</html>
```
在这个版本中,我们添加了一个 JavaScript 函数 `buildTree`,它接收目录数组和当前父目录作为参数。在循环中,它会为每个目录创建一个链接,如果目录有子目录,则会递归地调用自身来构建子目录。通过给 `.folder` 类添加样式,我们可以实现点击展开/折叠效果。
注意:这个例子假定你已经把 JavaScript 代码放在了 `<body>` 标签内的 `onload` 属性里,这样在页面加载时就会立即初始化目录树。
阅读全文