0

现在我将文件作为字符串获取,我需要遍历每个已知的 ex。案例来获取它的文件扩展名。

如何使用 c# 在运行时确定文件扩展名而不进行预期迭代?

4

9 回答 9

12

使用框架提供的Path.GetExtension方法。

指定路径的扩展名(包括句点“.”),或者null,或者String.Empty。如果 path 为 null,GetExtension 返回 null。如果 path 没有扩展信息,GetExtension 返回 String.Empty。

string extension = Path.GetExtension(@"C:\mydir\file.exe");

你会得到.exe

于 2013-03-22T07:33:10.967 回答
2

您是否尝试过使用类似的东西

Path.GetExtension()

指定路径的扩展名(包括句点“.”),或者null,或者String.Empty。如果 path 为 null,GetExtension 返回 null。如果 path 没有扩展信息,GetExtension 返回 String.Empty。

于 2013-03-22T07:33:36.430 回答
2

你可以使用Path.GetExtension()方法。

指定路径的扩展名(包括句点“.”),或 null,或String.Empty。如果路径是null,则GetExtension返回null。如果 path 没有扩展信息,则GetExtension返回 String.Empty

string p = @"C:\Users\Sam\Documents\Test.txt";

string e = Path.GetExtension(p);
if (e == ".txt")
{
    Console.WriteLine(e);
}

Path.GetExtension检查整个路径是否有无效字符。如果您已经知道您的路径是有效的,例如当您从Directory.GetFiles 收到它时,此步骤是多余的。它寻找一个分隔符。实现检查DirectorySeparatorCharAltDirectorySeparatorCharVolumeSeparatorChar

于 2013-03-22T07:33:59.833 回答
1

使用Path.GetExtension

string extension = Path.GetExtension(@"C:\myfile.txt");

或者,您的意思是要搜索具有给定基本名称和任何扩展名的文件?您可以使用Directory.GetFiles

string[] files = Directory.GetFiles(@"C:\", "myfile.*")
于 2013-03-22T07:34:04.197 回答
1

找到它的另一种方法..

var file = new FileInfo("myPath");
var extension = file.Extension;

因此,例如,如果我们想从目录中获取所有 txt 文件,我们可以这样做:

var directory = new DirectoryInfo("myFolder");
var filesWithTxtExtension = directory.GetFiles().Where(file => file.Extension == ".txt");
于 2013-03-22T07:38:20.990 回答
1

您可以使用System.IO.FileInfo 类
它有一个名为Extension的属性,它为您提供一个包含文件名扩展部分的字符串。

FileInfo file = new FileInfo("myfile.txt")
string fileExtension = file.Extension;
于 2013-03-22T07:38:41.220 回答
0

使用Path.GetExtension(path)它可能会有所帮助。

于 2013-03-22T07:33:22.160 回答
0
string getFileExtension (string Path)
{
return Path.GetExtension(Path);
}
于 2013-03-22T07:35:15.333 回答
0
string path = Path.GetExtension(filePath);

来自MSDN - Path.GetExtension 方法

于 2013-03-22T07:36:05.190 回答