从不完整的文件名获取扩展名

时间:2013-10-12 07:37:58

标签: c# .net

我有一条没有延伸的路径:

C:\myFilename

我怎么知道这个文件的扩展名是什么?除了循环整个目录并查看哪一个与我拥有的字符串相匹配之外,是否有更容易(且不那么密集)的方式?

4 个答案:

答案 0 :(得分:1)

  1. Directory.GetFiles()的{​​{1}}参数中定义不完整的路径,最后带searchPattern
  2. 迭代所有匹配的文件路径,并使用*Path.GetFileName()

    获取其文件名和扩展名
    Path.GetExtension()

答案 1 :(得分:0)

System.IO.Directory.GetFiles("C:\\","myFilename*")

将返回与模式匹配的所有文件名的数组,而无需您自己循环。

答案 2 :(得分:0)

这取决于理想情况下,您的程序将期望有限的扩展列表。使用这些扩展,您可以直接访问该文件。但是,如果您不知道,那么您只能获得符合正则表达式文件名的文件。*,其中*将是之后的任何字符序列。

以下是执行此操作的示例代码

String[] FileList = GetFiles("c:\MyFileName*",SearchOption.TopDirectoryOnly); 

您还会发现此功能的另外两个变体,它们将为您提供递归搜索和其他选项

您可能想要阅读此内容 http://msdn.microsoft.com/en-us/library/ms143316.aspx

答案 3 :(得分:0)

在同一目录中可能有许多具有相同文件名且扩展名不同的文件:

//Get all the files starting from myFilename
string[] files = Directory.GetFiles(@"c:\", "myFilename.*");

//Use Path.GetExtenstion() method to extract extension part 
foreach(string file in files)
{
   extension = Path.GetExtension(file);
   Console.WriteLine("Extension of ('{0}') is '{1}'",  file, extension);
}

Path Class有一些非常有用的方法。

Path.GetDirectoryName()
Path.GetFileName()
Path.GetFileNameWithoutExtension()
Path.GetFullPath() 
...