在Windows窗体中使用c#我需要在目录"C:\XML\Outbound"
中搜索包含订单号3860457
的文件,并返回包含订单号的文件的路径,以便我可以打开该文件并在RickTextBox中向用户显示内容。
最终用户将拥有订单号但不知道哪个文件包含该订单号,因此我需要搜索所有文件,直到找到包含订单号的文件并返回路径(例如"C:\XML\Outbound\some_file_name_123.txt"
)
我对c#有些新意,所以我甚至不确定从哪里开始。对此有何看法?
很抱歉订单号在文件中,所以我需要在每个文件内容中搜索订单号,一旦找到包含订单号的文件,就会返回该文件的路径。订单号不是文件名的一部分。
答案 0 :(得分:4)
直接回答:
public string GetFileName(string search){
List<string> paths = Directory.GetFiles(@"C:\XML\Outbond","*.txt",SearchOption.AllDirectories).ToList();
string path = paths.FirstOrDefault(p=>File.ReadAllLines(p).Any(line=>line.IndexOf(search)>=0));
return path;
}
不那么直接的答案:
即使上面的函数会给你给定字符串的路径(一些错误处理和边缘情况可能很好),但它会非常慢,特别是如果你有很多文件。如果是这种情况,您需要告诉我们更多关于您的环境的信息,因为您可能做错了(: