【发布时间】:2020-09-21 18:34:07
【问题描述】:
如何在下载前猜出可能的文件名?我正在使用String nameOfFile = URLUtil.guessFileName(url, contentDisposition, mimetype);,但它只返回文件名,而不是扩展名。扩展名总是返回“.bin”。我该如何解决?我在互联网上到处搜索。
【问题讨论】:
-
如果文件没有扩展名,那么 URLUtil 会自动添加
.bin。
如何在下载前猜出可能的文件名?我正在使用String nameOfFile = URLUtil.guessFileName(url, contentDisposition, mimetype);,但它只返回文件名,而不是扩展名。扩展名总是返回“.bin”。我该如何解决?我在互联网上到处搜索。
【问题讨论】:
.bin。
String nameOfFile = URLUtil.guessFileName(url, contentDisposition, null);
对我有用
【讨论】:
注意:如果文件没有扩展名,那么
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
【讨论】:
MimeUtils.guessExtensionFromMimeType(null),但它崩溃了