提问者:小点点

有没有更快的方法找到所有文件?


下面的代码将获取系统中的所有文件:

private void Button1_Click(object sender, EventArgs e)
{
    var allDrives = DriveInfo.GetDrives();
    List<string> list = new List<string>();
    foreach (DriveInfo d in allDrives)
    {
        if (d.DriveType == DriveType.Fixed)
        {
            list.Add(d.Name);
        }
    }
    var listfile = new List<string>();
    foreach (var item in list)
    {
        GetAllFiles(item, listfile);
    }
    foreach (var item in listfile)
    {
        listBox1.Items.Add(item);
    }
}

public void GetAllFiles(string path, IList<string> files)
{
    try
    {
        Directory.GetFiles(path).ToList()
            .ForEach(f => files.Add(f));

        Directory.GetDirectories(path).ToList()
            .ForEach(f => GetAllFiles(f, files));
    }
    catch (Exception ex)
    {

    }
}

它工作,但非常慢。 有没有更快的方法来做这件事?


共1个答案

匿名用户

它工作,但非常慢。 有没有更快的方法来做这件事?

是的。

  1. 安装VoidTools的所有内容:https://www.voidtools.com/downloads/
  2. 将所有内容配置为Windows服务(而不是每个用户的应用程序)
  3. 使用Everything的SDK(https://www.voidtools.com/support/Everything/SDK/)从您的C#代码查询Everything Windows服务。