我正在多个目录中搜索一个名为“abc.txt”的文件。这些目录是逗号分隔值,如
string paths= 'C:/hello,D:/Hello';
如何使用上面的逗号分隔目录搜索“abc.txt”?
感谢。
答案 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)
string paths ='C:/ hello,D:/ Hello';
string[] words = paths.Split(',');
现在您需要从每个字符串标记中获取目录字母
foreach(单词中的字符串) {
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