c#搜索特定字符串的文本文件并获取文件路径

时间:2013-04-05 20:22:59

标签: c# winforms

在Windows窗体中使用c#我需要在目录"C:\XML\Outbound"中搜索包含订单号3860457的文件,并返回包含订单号的文件的路径,以便我可以打开该文件并在RickTextBox中向用户显示内容。

最终用户将拥有订单号但不知道哪个文件包含该订单号,因此我需要搜索所有文件,直到找到包含订单号的文件并返回路径(例如"C:\XML\Outbound\some_file_name_123.txt"

我对c#有些新意,所以我甚至不确定从哪里开始。对此有何看法?

很抱歉订单号在文件中,所以我需要在每个文件内容中搜索订单号,一旦找到包含订单号的文件,就会返回该文件的路径。订单号不是文件名的一部分。

1 个答案:

答案 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;    
}

不那么直接的答案:

即使上面的函数会给你给定字符串的路径(一些错误处理和边缘情况可能很好),但它会非常慢,特别是如果你有很多文件。如果是这种情况,您需要告诉我们更多关于您的环境的信息,因为您可能做错了(: