我有一个名为
的文件夹如何检查文件“myfilethree”是否存在。
我的意思是除了IsFileExist()
方法之外还有另一种方法,即文件名包含子串“三”吗?
答案 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"));
编辑:请注意,这将返回字符串数组。