Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何知道文档/文件的扩展名?_C#_Regex_Asp.net Mvc_Linq - Fatal编程技术网

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

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(".

我需要知道不同文档的扩展,并根据扩展在我的代码中做出一些决定:例如,我可以使用以下文件名:

保存.docx的命令 旧单词.doc rel.txt test.pdf

我知道使用Linq附带的Contains方法可以做一些事情,但我担心使用Contains方法将需要.doc扩展名,即使是.docx扩展名,因为.doc是.docx的子字符串

我认为更好的方法可能是用正则表达式来表示。。。有什么建议吗

我做过类似的事情,但也许正则表达式应该是更好的方法:

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");