我有一个自定义对象,其中包含返回根目录中所有目录和文件名的方法
string[] dirlist = obj.GetDirectories();
//which returns all dir names in root
string[] filelist = obj.GetFiles();
//which return all file names in root
Run Code Online (Sandbox Code Playgroud)
我无法修改这些方法.一旦我得到了dirlist,我如何获得其中所有子目录的列表以及子目录中的文件,忽略安全异常.它可以嵌套到多个级别..NET 4中有什么东西吗?
更新:string [] dirList也可以读作List dirlist.请提供一个使用.NET最新功能的解决方案
DirectoryOne
- SubDirOne
- SubDirTwo
- FileOne
- FileTwo
- SubDirThree
DirectoryTwo
DirectoryOne
Run Code Online (Sandbox Code Playgroud)
已经有内置的.NET方法来执行此操作:
// get all files in folder and sub-folders
Directory.GetFiles(path, "*", SearchOption.AllDirectories);
// get all sub-directories
Directory.GetDirectories(path, "*", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)
不知怎的,我觉得这不是你想要的解决方案.
更新: 我想我可能知道你要问的是什么,因为你把它标记为LINQ.如果要获取给定目录列表的所有子目录和子文件夹的列表,可以使用以下代码:
// get all files given a collection of directories as a string array
dirList.SelectMany(x => Directory.GetFiles(x, "*", SearchOption.AllDirectories));
// get all sub-directories given a collection of directories as a string array
dirList.SelectMany(x => x.Directory.GetDirectories(x, "*", SearchOption.AllDirectories));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |