簡體   English   中英

.NET 4中的EnumerateFiles和EnumerateFileSystemEntries有什么區別?

[英]What is the difference between EnumerateFiles and EnumerateFileSystemEntries in .NET 4?

在.Net 4中,有兩個函數可以枚舉路徑中的文件。 EnumerateFiles和EnumerateFileSystemEntries。 MSDN沒有對它們的差異給出足夠的解釋。 這些差異是什么?

EnumerateFileSystemEntries =>枚舉文件,目錄以及文件和目錄

EnumerateFiles => 用於枚舉 文件 (不是目錄)

EnumerateFiles僅返回文件名。 EnumerateFileSystemEntries返回目錄的名稱

當@Habib和@Sergey回答時,您需要使用EnumerateFileSystemEntries而不是EnumerateFiles 我將以一個例子來擴展他們的答案。

  • EnumerateFiles :返回與指定路徑中的搜索模式匹配的可枚舉文件名集合,並可選擇搜索子目錄。
  • EnumerateFileSystemEntries :返回指定路徑中的可枚舉文件名和目錄名集合。

這是一個展示差異的代碼:

public static void Main()
{
    Directory.CreateDirectory("dir");
    Directory.CreateDirectory("dir2");
    File.WriteAllText(Path.Combine("dir", Path.GetRandomFileName()), "file");
    var datapath = ".";

    var files = Directory.EnumerateFiles(datapath, "*", SearchOption.AllDirectories);
    files.Dump();

    var fileSystemEntries  = Directory.EnumerateFileSystemEntries(datapath, "*", SearchOption.AllDirectories);
    fileSystemEntries.Dump();
}

產量

Dumping object(System.IO.FileSystemEnumerableIterator`1[String])
[
   .\dir\epp3114y.jjr
]
Dumping object(System.IO.FileSystemEnumerableIterator`1[String])
[
   .\dir
   ,
   .\dir2
   ,
   .\dir\epp3114y.jjr
]

在線試試吧!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM