【发布时间】:2013-11-01 14:11:36
【问题描述】:
我有一种情况,我必须从 startingdirectory 和 \mydir\ 开始找到名为 my.exe 的第一个文件的路径,并根据需要深入。
实际上,IO.Directory.GetFiles 是合适的,但我需要它在找到第一个文件后停止搜索,就像 WinAPI 中的 FindFirstFile 一样。
VB.NET
Dim findedDirectories() As String = IO.Directory.GetFiles( _
startingdirectory & "\mydir\", "my.exe", IO.SearchOption.AllDirectories)
C#
string[] findedDirectories = IO.Directory.GetFiles( _
startingdirectory + "\\mydir\\", "my.exe", IO.SearchOption.AllDirectories);
是否可以在找到第一个文件后停止搜索,以使函数的结果将是string 或empty string,而不是string array?或者这里有更好的方法来搜索子目录中的第一个文件?
【问题讨论】:
-
@AlexFilipovici 这并不是真正的骗局,因为我们在这里寻找目录中的单个文件。对
File.Exists的简单调用就足够了。 -
@DavidHeffernan:...根据需要深入...
-
@AlexFilipovici 好的,我想采用
SearchOption参数的 EnumerateFiles 的重载可以满足要求。 -
如果 DirectoryInfo 足够,我的想法是不使用递归扫描,但事实并非如此。