【问题标题】:How to know the extension of documents/files? [duplicate]如何知道文件/文件的扩展名? [复制]
【发布时间】:2016-10-31 22:50:36
【问题描述】:

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

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

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

我认为更好的方法可能是为此使用正则表达式...有什么建议吗?

我做过类似的事情,但RegEx 应该是更好的方法:

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

【问题讨论】:

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


    【解决方案1】:

    使用Path.GetExtensionhere,你会找到你想要的东西

    【讨论】:

    • 链接不好拿,把相关代码放到问题里。
    • @mybirthname 它根本不应该是一个答案,这应该被标记为重复,一般来说,相关信息的链接应该加上引号,并不意味着不应该不是链接。
    • @Dispersia 确实如此。固定:)
    【解决方案2】:

    您可以使用MimeMapping.GetMimeMapping 方法来处理文档的mime 类型。这样,您就不需要获取文件扩展名并为所有不同类型编写这些 if 条件。

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-09-06
      • 2013-02-12
      • 2012-06-11
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多