簡體   English   中英

如何使用C#在多個目錄中找到文件

[英]How to locate a file on multiple directories using C#

我正在多個目錄中搜索“ abc.txt”文件。 這些目錄是逗號分隔的值,例如

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

如何使用上述逗號分隔的目錄搜索“ abc.txt”?

謝謝。

您只需要在逗號上分割字符串,然后使用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. 您需要從逗號分割字符串:

字符串路徑='C:/ hello,D:/ Hello';

 string[] words = paths.Split(',');
  1. 現在您需要從每個字符串標記中獲取目錄字母

    foreach(字串字){

字符串directoryName = word.Split(':/')[0];

字符串searchString = word.Split(':/')[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文件

我不建議您使用逗號分隔的列表,除非您對文件名擁有絕對控制權(我假設您沒有此權限,因為您需要搜索多個位置)。

請記住,文件名可以包含','和';'等字符 這是分隔列表的明顯選擇。 如果您可以控制創建列表,我建議使用管道字符('|'),它是可讀的,並且不能成為文件名的一部分。

但是,如果您可以控制文件名,則可以像其他建議的那樣簡單地使用split。

假設文件名或目錄名中沒有逗號

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.
}

您可以使用拆分方法

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

分割您的文件夾字符串並搜索該目錄

搜索文件夾和文件,您可能想在這里看看http://msdn.microsoft.com/en-us/library/dd997370.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM