我正在多个目录上搜索一个说“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);
}
字符串路径='C:/hello,D:/Hello';
string[] words = paths.Split(',');
现在您需要从每个字符串标记中获取目录字母
foreach(单词中的字符串){
string 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 。
拆分您的文件夹字符串并搜索该目录
要搜索文件夹和文件,您可能想看看这里 http://msdn.microsoft.com/en-us/library/dd997370.aspx
假设文件名或目录名中没有逗号
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.
}
你可以使用 split 方法
string paths= 'C:/hello,D:/Hello';
string[] words = paths.Split(',');
foreach (string word in words)
{
SearchInDirectory(word)
}