【发布时间】:2020-01-11 06:12:13
【问题描述】:
我有一个 windows 目录的递归目录列表文件,如下所示。
Volume in drive D is DATA
Volume Serial Number is A4EC-104D
Directory of D:\Studies\Projects\test
14/07/2019 08:09 PM <DIR> .
14/07/2019 08:09 PM <DIR> ..
14/07/2019 08:08 PM <DIR> Test1
0 File(s) 0 bytes
Directory of D:\Studies\Projects\test\Test1
14/07/2019 08:08 PM <DIR> .
14/07/2019 08:08 PM <DIR> ..
14/07/2019 08:08 PM <DIR> Test2
14/07/2019 08:08 PM <DIR> Test3
0 File(s) 0 bytes
Directory of D:\Studies\Projects\test\Test1\Test2
14/07/2019 08:08 PM <DIR> .
14/07/2019 08:08 PM <DIR> ..
14/07/2019 08:08 PM <DIR> Test4
0 File(s) 0 bytes
Directory of D:\Studies\Projects\test\Test1\Test2\Test4
14/07/2019 08:08 PM <DIR> .
14/07/2019 08:08 PM <DIR> ..
14/07/2019 08:08 PM 0 testfile.txt
1 File(s) 0 bytes
Directory of D:\Studies\Projects\test\Test1\Test3
14/07/2019 08:08 PM <DIR> .
14/07/2019 08:08 PM <DIR> ..
14/07/2019 08:08 PM 0 file2.txt
1 File(s) 0 bytes
Total Files Listed:
2 File(s) 0 bytes
14 Dir(s) 372,031,488,000 bytes free
我想从上面的文件中将TreeView 填充到C# 中,应该类似于下图
我是编程新手,想获得一些关于如何解决这个问题的提示。这是否需要任何递归函数调用?代码 sn-p 或伪代码解决方案会很棒。
【问题讨论】:
-
您可以使用递归函数(但您不必这样做)。到目前为止你有没有尝试过?
-
递归有它的位置。所以,如果你想学习如何去做:去做吧。如果您正在编写富有成效的代码:我不建议您这样做。特别是如果您没有编写大量递归代码,则很有可能会搞砸。
-
您可以在调用提取方法时使用 System.IO.Directory.GetDirectories() 和 System.IO.Directory.GetFiles()。
-
这也是了解
Composite Design模式的好时机,(dotnettricks.com/learn/designpatterns/…)