是否有任何聪明的方法可以在C#中按名称和未知扩展名轻松查找文件?
我有一个包含不同类型.jpg,.gif和.png图像的图像文件夹。 并且所有程序都知道图像的名称,而不是扩展名。
是否可以通过其名称获取文件,而无需执行一些大的递归资源消耗循环?
答案 0 :(得分:8)
您可以使用EnumerateFiles
方法并指定搜索模式:
var files = Directory.EnumerateFiles(@"c:\work", "somefilename.*");
这当然会返回与此搜索模式匹配的所有文件的IEnumerable<string>
。如果您知道只有一个,或者想要获得列表中的第一个,只需将其与LINQ链接以进一步过滤结果。
答案 1 :(得分:1)
是的,有可能。使用重载Directory.GetFiles方法接受搜索模式作为第二个参数:
string[] files = Directory.GetFiles(@"c:\images", fileName + ".*");
答案 2 :(得分:1)
Linq救援
var filenames = Directory.GetFiles(@"C:\Windows\System32").Select(f => Path.GetFileName(f)).Where(fn => fn.StartsWith("ap"));
让linq为你做循环和过滤
答案 3 :(得分:0)
有几种选择: