代码之家  ›  专栏  ›  技术社区  ›  GurdeepS

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

c#
  •  5
  • GurdeepS  · 技术社区  · 14 年前

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

    C:\users\administrator\pictures\bluehillstest

    谢谢

    2 回复  |  直到 14 年前
        1
  •  13
  •   Mark Rushakoff    14 年前

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

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

    对于我,返回3个匹配项的数组。我 期待 数组,因为目录包含 test.cover , test.py test.pyc .

    如果我使用 First 扩展方法:

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

    然后它只返回第一个结果( 测试覆盖 )

    但是,使用 Single 扩展方法:

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

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

    但是如果我尝试

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

    然后我得到公正 step.py (未引发异常)因为这是唯一匹配的文件 step.* 在那个目录里。

        2
  •  2
  •   Darin Dimitrov    14 年前

    不,这是不可能的,因为你可能两者都有 BlueHillsTest.xxx BlueHillsTest.yyy 在这个位置。在这种情况下,您希望返回哪一个?