如何检查文件名是否包含C#中的子字符串

时间:2011-09-19 12:09:11

标签: c# .net

我有一个名为

的文件夹
  1. myfileone
  2. myfiletwo
  3. myfilethree
  4. 如何检查文件“myfilethree”是否存在。

    我的意思是除了IsFileExist()方法之外还有另一种方法,即文件名包含子串“三”吗?

3 个答案:

答案 0 :(得分:19)

子串:

bool contains  = Directory.EnumerateFiles(path).Any(f => f.Contains("three"));

不区分大小写的子字符串:

bool contains  = Directory.EnumerateFiles(path).Any(f => f.IndexOf("three", StringComparison.OrdinalIgnoreCase) > 0);

不区分大小写的比较:

bool contains  = Directory.EnumerateFiles(path).Any(f => String.Equals(f, "myfilethree", StringComparison.OrdinalIgnoreCase));

获取与通配符标准匹配的文件名:

IEnumerable<string> files = Directory.EnumerateFiles(path, "three*.*"); // lazy file system lookup

string[] files = Directory.GetFiles(path, "three*.*"); // not lazy

答案 1 :(得分:3)

如果我理解你的问题,你可以做类似

的事情

Directory.GetFiles(directoryPath, "*three*")

Directory.GetFiles(directoryPath).Where(f => f.Contains("three"))

这两个文件都会为您提供其中包含three的所有文件的所有名称。

答案 2 :(得分:0)

我对IO并不熟悉,但也许这会有用吗?需要using System.Linq

System.IO.Directory.GetFiles("PATH").Where(s => s.Contains("three"));

编辑:请注意,这将返回字符串数组。