获取文件的扩展名,而不在路径中提供扩展名

Gur*_*epS 6 c#

是否可以获取文件的扩展名,但是当您指定扩展名以外的整个路径时?例如:

C:\用户\管理\图片\ BlueHillsTest

谢谢

Mar*_*off 15

Directory.GetFiles 将允许您为要搜索的文件指定通配符:

System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*")
Run Code Online (Sandbox Code Playgroud)

对我来说,返回一个包含3个匹配项的数组.我想到一个数组,因为该目录包含test.cover,test.pytest.pyc.

如果我使用First扩展方法:

System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*").First()
Run Code Online (Sandbox Code Playgroud)

然后它只返回第一个结果(test.cover).

但是,使用Single扩展方法:

System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*").Single()
Run Code Online (Sandbox Code Playgroud)

引发一个InvalidOperationException因为"序列包含多个元素"(这可能是你想要的,具体取决于你的情况).

但是,如果我尝试

System.IO.Directory.GetFiles(@"C:\temp\py\", "step.*").Single()
Run Code Online (Sandbox Code Playgroud)

然后我得到step.py(没有异常引发)因为那是该step.*目录中唯一匹配的文件.