LINQ to Files / Directory

时间:2011-04-15 06:59:57

标签: c# linq file directory

如何使用LINQ在特定目录中查找特定文件,如果存在则返回true?

4 个答案:

答案 0 :(得分:11)

为什么要使用LINQ呢?这可以满足您的需求:

string filePath = Path.Combine(directory, fileName);
return File.Exists(filePath);

答案 1 :(得分:4)

你可以这样做:

var fileExists = new DirectoryInfo("directoryPath").GetFiles("filename.ext").Any();

但如果你已经知道文件的路径,你可以使用它:

var fileExists = File.Exists("filePath");

答案 2 :(得分:3)

var doesExist = new DirectoryInfo(folder).GetFiles(fileName, SearchOption.AllDirectories).Any();

答案 3 :(得分:1)

如果您喜欢这样的话,也可以考虑FluentPath。这是一个关于System.IO的Fluent包装,我看了一会儿。以下是该网站的示例:

Path.Get(args.Length != 0 ? args[0] : ".")
    .Files(
        p => new[] {
            ".avi", ".m4v", ".wmv",
            ".mp4", ".dvr-ms", ".mpg", ".mkv"
        }.Contains(p.Extension))
    .CreateDirectories(
        p => p.Parent()
              .Combine(p.FileNameWithoutExtension))
    .End()
    .Move(
        p => p.Parent()
              .Combine(p.FileNameWithoutExtension)
              .Combine(p.FileName));