C# 如何知道文档/文件的扩展名?
我需要知道不同文档的扩展,并根据扩展在我的代码中做出一些决定:例如,我可以使用以下文件名: 保存.docx的命令 旧单词.doc rel.txt test.pdf 我知道使用Linq附带的Contains方法可以做一些事情,但我担心使用Contains方法将需要.doc扩展名,即使是.docx扩展名,因为.doc是.docx的子字符串 我认为更好的方法可能是用正则表达式来表示。。。有什么建议吗 我做过类似的事情,但也许正则表达式应该是更好的方法:C# 如何知道文档/文件的扩展名?,c#,regex,asp.net-mvc,linq,C#,Regex,Asp.net Mvc,Linq,我需要知道不同文档的扩展,并根据扩展在我的代码中做出一些决定:例如,我可以使用以下文件名: 保存.docx的命令 旧单词.doc rel.txt test.pdf 我知道使用Linq附带的Contains方法可以做一些事情,但我担心使用Contains方法将需要.doc扩展名,即使是.docx扩展名,因为.doc是.docx的子字符串 我认为更好的方法可能是用正则表达式来表示。。。有什么建议吗 我做过类似的事情,但也许正则表达式应该是更好的方法: if (fileName.Contains(".
if (fileName.Contains(".pdf"))
{
Response.AddHeader("Content-Type", "application/pdf; Content-Disposition, inline" + fileName);
}
您将使用找到您要查找的内容。您可以使用MimeMapping.GetMimeMapping方法作为文档的mime类型。这样,您就不需要获取文件扩展名并为所有不同类型编写if条件
var fileName = Path.GetFileName("SomeFileNameWithLongPath.pdf");
string mimeType= MimeMapping.GetMimeMapping(fileName );
如果确实需要扩展,可以使用Path.GetExtension方法
链接不是好的naswer,请为问题添加相关代码。@mybirthname它根本不应该是答案,它应该被标记为重复,通常,指向相关信息的链接应该添加一个引号,但这并不意味着不应该有链接。@disposia确实如此。固定的:
var extension = Path.GetExtension("SomeFileNameWithLongPath.pdf");