我有一个包含大量文件的目录,并且我只想获取以 sly_
开头的文件名。
如果我没有错,匹配这个模式的表达式是 ^sly_
。
这是我使用这个问题中的解决方案尝试的结果:
string pattern = @"^sly_";
var matches = Directory.GetFiles(@"D:\mypath").Where(path => Regex.Match(path, pattern).Success);
foreach (string file in matches)
Console.Write(file);
不幸的是,这并没有列出符合我的模式的文件。那么,有人能告诉我我的代码有什么问题,以及如何列出以 sly_
开头的文件名吗?
提前致谢。
Directory.GetFiles("YourDirectory", "sly*")
的意思是获取名字以 "sly" 开头的文件,可以使用此方法。 - Arghya C^
表示模式应该从字符串的开头开始匹配。所以这个表达式会查找所有由GetFiles()
返回的元素,它们都以sly_
开头,但是由于你的路径是D:\mypath
,没有任何一个值以sly_
开头,所以你没有得到任何匹配结果。像其他两个回答中提到的那样,使用Directory.GetFiles(string path, string searchPattern)
代替。更易读。 - sab669