小编use*_*334的帖子

迭代文件结构时更新进度条

我使用这个函数来搜索所选目录中的所有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)

如何根据找到的文件数更新进度条状态?

c# backgroundworker file-search winforms progress-bar

5
推荐指数
1
解决办法
1145
查看次数

C#使用GetFiles返回完整路径

将此代码用于目录中的搜索文件:

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),则结果包含没有文件的文件夹的路径:

  • 0 C:\ bla\bla\bla\text.exe
  • 1 C:\ bla\bla\test.0.1
  • 2 C:\ bla\text.exe

等等

c# getfiles

3
推荐指数
2
解决办法
2万
查看次数