[英]What is the difference between Directory.EnumerateFiles vs Directory.GetFiles?
[英]What is the difference between EnumerateFiles and EnumerateFileSystemEntries in .NET 4?
在.Net 4中,有兩個函數可以枚舉路徑中的文件。 EnumerateFiles和EnumerateFileSystemEntries。 MSDN沒有對它們的差異給出足夠的解釋。 這些差異是什么?
EnumerateFileSystemEntries =>枚舉文件,目錄以及文件和目錄 。
EnumerateFiles => 僅用於枚舉 文件 。 (不是目錄)
EnumerateFiles
僅返回文件名。 EnumerateFileSystemEntries
返回目錄的名稱
當@Habib和@Sergey回答時,您需要使用EnumerateFileSystemEntries
而不是EnumerateFiles
。 我將以一個例子來擴展他們的答案。
這是一個展示差異的代碼:
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.