【问题标题】:How to get file name using `URLUtil`?如何使用`URLUtil`获取文件名?
【发布时间】:2020-09-21 18:34:07
【问题描述】:

如何在下载前猜出可能的文件名?我正在使用String nameOfFile = URLUtil.guessFileName(url, contentDisposition, mimetype);,但它只返回文件名,而不是扩展名。扩展名总是返回“.bin”。我该如何解决?我在互联网上到处搜索。

【问题讨论】:

  • 如果文件没有扩展名,那么 URLUtil 会自动添加.bin

标签: java android parsing url


【解决方案1】:
String nameOfFile = URLUtil.guessFileName(url, contentDisposition, null);

对我有用

【讨论】:

    【解决方案2】:

    注意:如果文件没有扩展名,那么URLUtil会自动添加.bin

    String nameOfFile = URLUtil.guessFileName(Url, null, null);
    
        Intent intent = new Intent(Intent.ACTION_VIEW);
    
        if (guessedFileName.contains(".gif")) {
            // GIF file
            mimeType = "image/gif";
        } else if (guessedFileName.contains(".jpg") || guessedFileName.contains(".jpeg")) {
            // JPG file
            mimeType = "image/jpeg";
        } else if (guessedFileName.contains(".png")) {
            // PNG file
            mimeType = "image/png";
        } else if (guessedFileName.contains(".txt")) {
            // Text file
            mimeType = "text/plain";
        } else if (
            guessedFileName.contains(".mpg") ||
            guessedFileName.contains(".mpeg") ||
            guessedFileName.contains(".mpe") ||
            guessedFileName.contains(".mp4") ||
            guessedFileName.contains(".avi") ||
            guessedFileName.contains(".3gp") ||
            guessedFileName.contains(".3gpp")  ||
            guessedFileName.contains(".3g2")
        ) {
            // Video files
            mimeType = "video/*";
        } else if (guessedFileName.contains(".doc") || guessedFileName.contains(".docx")) {
            // Word document
            mimeType = "application/msword";
        } else if (guessedFileName.contains(".pdf")) {
            // PDF file
            mimeType = "application/pdf";
        } else if (guessedFileName.contains(".ppt") || guessedFileName.contains(".pptx")) {
            // Powerpoint file
            mimeType = "application/vnd.ms-powerpoint";
        } else if (guessedFileName.contains(".xls") || guessedFileName.contains(".xlsx")) {
            // Excel file
            mimeType = "application/vnd.ms-excel";
        } else if (guessedFileName.contains(".rtf")) {
            // RTF file
            mimeType = "application/rtf";
        } else if (guessedFileName.contains(".apk")) {
            mimeType = "application/vnd.android.package-archive";
        } else if (guessedFileName.contains(".eml")) {
            mimeType = "message/rfc822";
        }
    

    有简要说明:Here

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2011-07-08
    • 2011-05-11
    • 2017-08-02
    相关资源
    最近更新 更多