我使用这个函数来搜索所选目录中的所有exe文件:
public static IEnumerable<string> GetFiles(string root, string searchPattern)
{
Stack<string> pending = new Stack<string>();
pending.Push(root);
while (pending.Count != 0)
{
var path = pending.Pop();
string[] next = null;
try
{
next = Directory.GetFiles(path, searchPattern);
}
catch { }
if (next != null && next.Length != 0)
foreach (var file in next) yield return file;
try
{
next = Directory.GetDirectories(path);
foreach (var subdir in next) pending.Push(subdir);
}
catch { }
}
}
Run Code Online (Sandbox Code Playgroud)
如何根据找到的文件数更新进度条状态?
将此代码用于目录中的搜索文件:
FileInfo[] files = null;
string path = some_path;
DirectoryInfo folder = new DirectoryInfo(path);
files = folder.GetFiles("*.*", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)
这只返回文件名和扩展名(text.exe).如何返回文件的完整路径(C:\ bla\bla\bla\text.exe)?
如果我使用Directory.GetFiles("*.*"),这将返回完整路径.但是如果文件夹包含名称中的点(C:\ bla\bla\test.0.1),则结果包含没有文件的文件夹的路径:
等等