如何知道文档/文件的扩展名?

时间:2016-10-31 22:50:37

标签: c# regex asp.net-mvc linq

我需要知道不同文档的扩展,并根据扩展在我的代码中做出一些决定:例如,我可以拥有这个FileNames:

commands to save.docx Old Word.doc rel.txt test.pdf

我知道使用Linq附带的Contains()方法可以做一些事情,但我担心使用Contains()即使是.doc也会.docx扩展1}}扩展名,因为.docsubstring

.docx

我认为一个更好的方法可能是这个的正则表达式...任何建议?

我做过类似的事情但是RegEx可能是更好的方法:

if (fileName.Contains(".pdf"))
{
    Response.AddHeader("Content-Type", "application/pdf; Content-Disposition, inline" + fileName);
}

2 个答案:

答案 0 :(得分:4)

您可以使用here

找到您所寻求的内容Path.GetExtension

答案 1 :(得分:1)

您可以使用MimeMapping.GetMimeMapping方法使用文档的mime类型。有了这个,你真的不需要获取文件扩展名并为所有不同类型编写if条件。

var fileName = Path.GetFileName("SomeFileNameWithLongPath.pdf");
string mimeType= MimeMapping.GetMimeMapping(fileName );

如果您真的想要扩展程序,可以使用Path.GetExtension方法

var extension = Path.GetExtension("SomeFileNameWithLongPath.pdf");