如何使用C#在多个目录上查找文件

时间:2012-06-29 06:23:48

标签: c# asp.net

我正在多个目录中搜索一个名为“abc.txt”的文件。这些目录是逗号分隔值,如

string paths= 'C:/hello,D:/Hello';

如何使用上面的逗号分隔目录搜索“abc.txt”?

感谢。

7 个答案:

答案 0 :(得分:3)

您只需要在逗号上拆分字符串,然后使用DirectoryInfo类依次搜索每个目录:

http://msdn.microsoft.com/en-us/library/ms143327.aspx

string paths= 'C:/hello,D:/Hello';
string[] pathList = paths.Split(',');
string searchPattern = "abc.txt";
foreach (string path in pathList)
{
    DirectoryInfo di = new DirectoryInfo(path);
    FileInfo[] files = di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly);
}

答案 1 :(得分:1)

  1. 您需要从逗号分隔字符串:
  2. string paths ='C:/ hello,D:/ Hello';

     string[] words = paths.Split(',');
    
    1. 现在您需要从每个字符串标记中获取目录字母

      foreach(单词中的字符串) {

    2. string directoryName = word.Split(':/')[0];

      string searchString = word.Split(':/')[1];

      }

      现在编写搜索逻辑以在目录中搜索。

答案 2 :(得分:1)

根据逗号分割你的字符串,(我希望你的目录名中没有任何逗号)

string[] directories = paths.Split(',');
var files = new List<string>();
foreach (string str in directories)
     {
       DirectoryInfo d = new DirectoryInfo(str);
       files.AddRange(Directory.GetFiles(d.FullName, "abc.txt", SearchOption.AllDirectories));
     }

您的文件将包含具有完整路径的目录中的所有abc.txt文件

答案 3 :(得分:1)

我建议不要使用逗号分隔列表,除非你对文件名有绝对的控制权(我假设你不需要搜索多个地方)。

请记住,文件名可以包含','和';'等字符这将是分离列表的明显选择。如果你控制创建列表我建议使用管道字符('|'),它是可读的,它不能是文件名的一部分。

但是,如果您可以控制文件名,则可以像其他人已经建议的那样使用拆分。

答案 4 :(得分:0)

假设文件或目录名中没有逗号

string paths= @"C:/hello,D:/Hello";

string multipaths = paths.Split(',');

foreach (string str in multipaths)
{
    string filepath = Path.Combine(str, "abc.txt");

   //Do what you want from these files.
}

答案 5 :(得分:0)

你可以使用拆分方法

    string paths= 'C:/hello,D:/Hello';
    string[] words = paths.Split(',');
    foreach (string word in words)
    {
        SearchInDirectory(word)
    }

答案 6 :(得分:0)

拆分您的文件夹字符串并搜索该目录

搜索您可能想看看的文件夹和文件 http://msdn.microsoft.com/en-us/library/dd997370.aspx