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

时间:2010-06-16 16:28:54

标签: c#

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

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

由于

2 个答案:

答案 0 :(得分:14)

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

System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*")

对我来说,返回一个包含3个匹配项的数组。我期待一个数组,因为该目录包含test.covertest.pytest.pyc

如果我使用First扩展方法:

System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*").First()

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

但是,使用Single扩展方法:

System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*").Single()

引发InvalidOperationException因为“序列包含多个元素”(这可能是您想要的,具体取决于您的具体情况)。

但如果我尝试

System.IO.Directory.GetFiles(@"C:\temp\py\", "step.*").Single()

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

答案 1 :(得分:2)

不可能,因为您可能在此位置同时拥有BlueHillsTest.xxxBlueHillsTest.yyy。在这种情况下,您希望返回哪一个?