如何使用DirectoryInfo.EnumerateFiles

时间:2013-03-26 15:25:08

标签: c# directory enumeration

基于documentation on MSDN for DirectoryInfo.EnumerateFiles,该过程涉及:

  1. 使用路径
  2. 声明DirectoryInfo
  3. 使用EnumerateFiles方法检索文件
  4. 有一些基础类可以检索此信息,例如FileInfo依赖于FileSystemInfo

    DirectoryInfo DR = new DirectoryInfo(@"C:\temp\Downloads");
    foreach(FileInfo FF in DR.EnumerateFiles())
    { 
        textBox1.Text += FF.ToString()+ "\r\n"; 
    }
    
    1. 如何在使用之前声明FileInfo我可以重新编码 直接?
    2. 如果我使用List<T>,我将如何重新编码?
    3. 我如何阅读列表可枚举数据?
    4. 由于

2 个答案:

答案 0 :(得分:1)

  1. 你为什么要这样?
  2. var list = DR.EnumerateFiles().ToList();

答案 1 :(得分:0)

并不是很清楚你想要做什么,但是,你可以在使用它之前'声明它',通过以下方式:

DirectoryInfo DR = new DirectoryInfo(@"C:\temp\Downloads");
List<string> filePaths = DR.EnumerateFiles();
IEnumerable<FileInfo> fileInfos = filePaths.Select(f => new FileInfo(f));
foreach(FileInfo fileInfo in fileInfos)
{ 
    textBox1.Text += fileInfo.FullName.ToString()+ "\r\n"; 
}

(也就是说,只需将声明移到 foreach循环之外)

由于EnumerateFiles会返回文件的完整路径,因此您需要创建FileInfo个实例,您可以使用为其提供的构造函数来创建你。

要执行您已经谈过的'list'位,您只需添加ToList(),LINQ将为您完成工作:

List<FileInfo> fileInfos = filePaths.Select(f => new FileInfo(f)).ToList();