|
发表于 2003-5-12 16:43:58
|
显示全部楼层
最初由 LYOO 发表
plan9客气了,指点谈不上,大家讨论一下吧:p
我读了你的脚本,我们的解题思路完全不同。
我的改造方案是:增加一个目录状态数组(每个组员可能有三种赋值1、2、3分别对应“| ”、“|-”、“ ”),由它来确定每行的目录树如何绘制,本行数组值在继承上一行数年组值的基础上,根据“本行文件是否为本层的最后一个目录”来确定是否对上行数组值的末位值进行修改。然后改造print_dash(),让它成根据数组数组值进行绘图。
这个方案的缺点就是改动比较大,但基本思路和你原脚本是一致的。
我的想法与你类似,而且我已经这样做了,不过我没有做数据组,这种方法实现起来速度非常慢,因为每进一个目录都要运行一次ls来找最后一个文件。
而且我现在还有一个问题没有解决,你看一下我的脚本的输出就知道了。
输出:
- .
- |-- out
- |-- public_html
- | |-- cgi-bin
- | | |-- test
- | | |-- test2
- | | |-- test23
- | | |-- test234
- | | |-- test2345
- | | |-- test23455
- | | `-- x
- | | | |-- 1
- | | | |-- 12
- | | | |-- 123
- | | | |-- 1234
- | | | `-- 12346
- | |-- out.txt
- | |-- tree
- | `-- tree.sh
- |-- tree
- |-- tree.sh
- |-- tree.sh.1
- `-- tree2
- 3 directories, 19 files
复制代码
这里:
- | | |-- test23455
- | | `-- x
- | | | |-- 1
- | | | |-- 12
- | | | |-- 123
- | | | |-- 1234
- | | | `-- 12346
- | |-- out.txt
- | |-- tree
- | `-- tree.sh
复制代码
实际应该为:
- | | |-- test23455
- | | `-- x
- | | |-- 1
- | | |-- 12
- | | |-- 123
- | | |-- 1234
- | | `-- 12346
- | |-- out.txt
- | |-- tree
- | `-- tree.sh
复制代码
那就实现了我想像的功能了。
|
|