Linq查找在文件目录中的是否存在特定的文件
View Code
static void Main(string[] args) { string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //FileQuery2(desktop); if (!string.IsNullOrEmpty(FileQuery())) { Console.WriteLine(FileQuery()); } else { Console.WriteLine("电脑桌面上不存在text.txt文件"); } Console.Read(); } // 使用Linq查询 // 查询桌面是否存在text.txt文件 private static string FileQuery() { string desktopdir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // 获得指定目录和子目录中的文件名 string[] filenames = Directory.GetFiles(desktopdir, "*.*", SearchOption.AllDirectories); List<FileInfo> files = new List<FileInfo>(); foreach (var filename in filenames) { files.Add(new FileInfo(filename)); } var results = from file in files where file.Name == "text.txt" select file; // 输出查询结果 StringBuilder queryResult = new StringBuilder(); foreach (var result in results) { queryResult.AppendLine("文件的路径为: " + result.FullName); } return queryResult.ToString(); } /// <summary> /// 使用递归来查找文件 /// 查询桌面是否存在text.txt文件 /// </summary> private static void FileQuery2(string path) { // 获得指定目录中的文件(包含子目录) string[] filenames = Directory.GetFiles(path); List<FileInfo> files = new List<FileInfo>(); foreach (var filename in filenames) { files.Add(new FileInfo(filename)); } var results = from file in files where file.Name == "text.txt" select file; // 输出查询结果 StringBuilder queryResult = new StringBuilder(); foreach (var result in results) { Console.WriteLine("文件的路径为: " + result.FullName); } // 获得所有子目录 string[] dirs = Directory.GetDirectories(path); if (dirs.Length > 0) { foreach (string dir in dirs) { FileQuery2(dir); } } }
运行结果为:
我的电脑桌面文件结果为:
Desttop文件夹
text.txt
mytext文件夹
text文件夹
text.txt
text.txt


浙公网安备 33010602011771号