我正在多個目錄中搜索一個文件,名爲「abc.txt」。這些目錄逗號分隔值一樣如何使用C#在多個目錄中定位文件
string paths= 'C:/hello,D:/Hello';
我如何搜索「的abc.txt」使用上述逗號分隔的目錄?
謝謝。
我正在多個目錄中搜索一個文件,名爲「abc.txt」。這些目錄逗號分隔值一樣如何使用C#在多個目錄中定位文件
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);
}
非常感謝。它工作得很好 – user735647
假設有文件或目錄名沒有逗號
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.
}
這不是一個好方法。如果路徑中有逗號怎麼辦? –
使用分號。從基本上來說,它們一直是DOS風格路徑的分隔符。請參閱%PATH%和'Path.PathSeparator'。 –
您可以使用拆分法對於
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
string paths ='C:/ hello,D:/ Hello';
string[] words = paths.Split(',');
現在,你需要從每個字符串令牌
的foreach(文字串詞){
字符串目錄名= word.Split目錄號(」 :/')[0];
string 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非常感謝habib – user735647
@ user735647,不客氣 – Habib
我不會建議使用逗號分隔列表,除非您對文件名有絕對控制權(我假設您不需要搜索多個位置)。
請記住,文件名可以包含''和';'等字符。這將是分離列表的明顯選擇。如果你控制創建列表,我建議使用管道字符('|'),它是可讀的,它不能成爲文件名的一部分。
但是,如果你有控制文件名稱,你可以像其他人已經建議的那樣簡單地使用分割。
我認爲你的字符串應該是'string paths = @「C:/ hello,D:/ Hello」;' –
沒必要,因爲它是一個正常的斜槓,而不是反斜槓 – Onkelborg