我有一条没有延伸的路径:
C:\myFilename
我怎么知道这个文件的扩展名是什么?除了循环整个目录并查看哪一个与我拥有的字符串相匹配之外,是否有更容易(且不那么密集)的方式?
答案 0 :(得分:1)
Directory.GetFiles()
的{{1}}参数中定义不完整的路径,最后带searchPattern
迭代所有匹配的文件路径,并使用*
和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()
...