现在我将文件作为字符串获取,我需要遍历每个已知的ex。抓住它的文件扩展名。
如何在运行时使用c#确定文件扩展名而不进行迭代?
答案 0 :(得分:12)
使用框架提供的Path.GetExtension方法。
指定路径的扩展名(包括句号“。”),或 null或String.Empty。如果path为null,则GetExtension返回null。如果 路径没有扩展信息,GetExtension返回 的String.Empty。
string extension = Path.GetExtension(@"C:\mydir\file.exe");
您将获得.exe
答案 1 :(得分:2)
您是否尝试过使用类似
的内容指定路径的扩展名(包括句点“。”)或 null或String.Empty。如果path为null,则GetExtension返回null。如果 路径没有扩展信息,GetExtension返回 的String.Empty。
答案 2 :(得分:2)
您可以使用Path.GetExtension()
方法。
指定路径的扩展名(包括句点“。”),或
null
或String.Empty
。如果路径为null
,则GetExtension
会返回null
。如果 路径没有扩展信息,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.GetFile
收到路径,则此步骤是多余的。它查找分隔符char。实施检查DirectorySeparatorChar
,AltDirectorySeparatorChar
和VolumeSeparatorChar
。
答案 3 :(得分:1)
string extension = Path.GetExtension(@"C:\myfile.txt");
或者,您是不是想要搜索具有给定基本名称和任何扩展名的文件?您可以使用Directory.GetFiles
:
string[] files = Directory.GetFiles(@"C:\", "myfile.*")
答案 4 :(得分: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");
答案 5 :(得分:1)
您可以使用System.IO.FileInfo Class 它有一个名为Extension的属性,它为您提供一个包含文件名扩展名部分的字符串。
FileInfo file = new FileInfo("myfile.txt")
string fileExtension = file.Extension;
答案 6 :(得分:0)
使用Path.GetExtension(path)
它可能会有帮助。
答案 7 :(得分:0)
string getFileExtension (string Path)
{
return Path.GetExtension(Path);
}
答案 8 :(得分:0)
string path = Path.GetExtension(filePath);