我正在尝试获取 android 中文件的 mime 类型,并且我可以使用此代码获取 mime 类型
val extension = MimeTypeMap.getFileExtensionFromUrl(file)
val fileType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase())
Run Code Online (Sandbox Code Playgroud)
但问题是文件名是否包含空格或其他特殊字符
例如, /storage/emulated/0/Download/Snow Falling Down.mp4
它返回 null。
您可以使用此方法获取文件扩展名。然后你可以从扩展中获取MimeType
爪哇语
public static String getExtension(String fileName) {
String encoded;
try {
encoded = URLEncoder.encode(fileName, "UTF-8").replace("+", "%20");
} catch (UnsupportedEncodingException e) {
encoded = fileName;
}
return MimeTypeMap.getFileExtensionFromUrl(encoded).toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
在科特林中
fun getExtension(fileName: String): String {
val encoded: String = try {
URLEncoder.encode(fileName, "UTF-8").replace("+", "%20")
} catch (e: Exception) {
fileName
}
return MimeTypeMap.getFileExtensionFromUrl(encoded).toLowerCase()
}
Run Code Online (Sandbox Code Playgroud)
或者作为 Kotlin 扩展:
fun File.getExtension(): String {
val encoded: String = try {
URLEncoder.encode(name, "UTF-8").replace("+", "%20")
} catch (e: Exception) {
name
}
return MimeTypeMap.getFileExtensionFromUrl(encoded).toLowerCase(Locale.getDefault())
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5076 次 |
| 最近记录: |