Android:我应该使用 MimeTypeMap.getFileExtensionFromUrl() 吗? [错误]

2023-12-29

例如,我想使用以下函数从文件 URL 获取文件扩展名:

文件名:

Greatest Hits - Lenny Kravitz (Booklet 01) [2000].jpg

文件的网址:

String url = "/mnt/sdcard/mydev/Greatest Hits - Lenny Kravitz (Booklet 01) [2000].jpg";

函数调用:

String extension = MimeTypeMap.getFileExtensionFromUrl(url);

但我在函数调用时遇到异常。这是一个错误还是一个功能?

它适用于不包含太多外来字符(例如括号)的文件名。

功能有bug吗?我错过了什么吗?我该如何区分错误和功能?我已阅读功能说明,它应该可以正常工作。

您个人在项目中使用它吗?似乎没有reliable http://code.google.com/p/android/issues/detail?id=5510.


当我测试你的代码时,没有抛出任何异常。尽管没有返回正确的文件扩展名“jpg”。我不建议使用MimeTypeMap。获取文件扩展名的简单方法如下:

String file = "/mnt/sdcard/mydev/Greatest Hits - Lenny Kravitz (Booklet 01) [2000].jpg";
String exten = "";

int i = file.lastIndexOf('.');
if (i > 0) {
    exten = file.substring(i+1);
}

至于为什么MimeTypeMap.getFileExtensionFromUrl(url)失败?它需要一个格式正确的 URL 字符串,但你的不是。您应该首先使用它进行编码URLEncoder。例如:

String url = "/mnt/sdcard/mydev/Greatest Hits - Lenny Kravitz (Booklet 01) [2000].jpg";
url = URLEncoder.encode(url, "UTF-8");

This should allow MimeTypeMap.getFileExtensionFromUrl(url)正常工作,但不幸的是它仍然不能正常工作。为什么?URLEncoder会将所有空格更改为“+”号并且getFileExtensionFromUrl认为这是一个无效字符。恕我直言,这部分是一个错误。

根据我的经验,大多数人不使用这种方法。事实上,在你提出这个问题之前我从未听说过它。可能是因为查找文件扩展名相当简单,并且大多数人编写的代码与我上面发布的代码类似。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:我应该使用 MimeTypeMap.getFileExtensionFromUrl() 吗? [错误] 的相关文章

随机推荐

  • ASP.NET 错误:此页面的状态信息无效并且可能已损坏

    我没有 JQuery 或其他 javascript 更改值或 html 结构 而且我没有动态添加的控件 我仍然收到错误 该页面的状态信息无效并且可能已损坏 该错误的发生有些随机 这是我如何复制问题的 aspx file
  • 从 PHP 中的 RNCryptor AES 256 标头检索 IV

    使用最新的 RNCryptor 源并尝试将加密数据发送到 PHP 脚本 RNCryptor 将 IV 打包到标头部分中 该标头部分被添加到实际加密数据的前面 NSData header uint8 t header 2 kRNCryptor
  • Rails 使用 MS SQL Server 数据库

    在我的 Rails 应用程序中 我需要使用现有的 MS SQL 数据库 我尝试按照本手册操作 http rubyrailsandwindows blogspot com 2008 03 rails 2 and sql server 2008
  • 当类位于服务项目中时,Moq 在不可重写的成员上抛出无效设置

    我正在尝试对此类 ServizioController 进行单元测试 public class ServizioController IServizioController public virtual void PerformAction
  • 如何捕捉Android软键盘上的“下一步”按钮

    我有 6 个 Edittexts 分为 6 种不同的布局 全部位于同一视图中 我的问题是我的应用程序被迫进入横向模式 并且通过按 下一步 按钮 我想自动开始编辑另一个 editText 而不是默认情况下 android 设置的那个 示例 我
  • 需要帮助使用表达式 SSRS 使用两个数据集进行计算

    我正在创建 SSRS 报告 其中 在 Dataset15 中 我的值为 Jan 100 和 Feb 110 在 Dataset16 中 我的值为 Jan 80 和 Feb 100 现在我想使用表达式在折线图中计算相同的内容 Jan 80 1
  • 我可以在 php 中使用 javascript 正则表达式吗

    我在 javascript 中使用正则表达式 并希望使用相同的正则表达式进行服务器端验证 我是否需要修改它以使其兼容 或者它会按原样运行吗 如何使用 PHP 正则表达式 请提供一个小例子 提前致谢 EDIT 用于电子邮件验证 var pat
  • 在 python 中更改全局变量值时出现问题

    假设我有这个功能 gt gt gt a 3 gt gt gt def num a a 5 return a gt gt gt num a 5 gt gt gt a 3 a 的值不会改变 现在考虑这段代码 gt gt gt index 1 g
  • 如何删除codeigniter代码中的index.php?

    我想从 codeigniter 的 url 中删除 index php 所以在用户指南中 有办法通过编辑 htaccess 来做到这一点 但我的主机不允许编辑它 有什么办法可以处理 codeigniter 的代码吗 谢谢 抱歉 恐怕这是不可
  • Java 8 添加对象列表的多个属性的值

    假设我下面有一个带有 getter 和 setter 的类 但只有默认构造函数 注意 我不允许更改此类的结构 class Target private String year private String month private Str
  • 是否有“好的”PRNG 生成没有隐藏状态的值?

    我需要一些好的伪随机数生成器 它可以像纯函数一样根据之前的输出进行计算 而无需任何状态隐藏 好 我的意思是 我必须能够以运行它的方式参数化生成器2 n任何参数 或其中一些大的子集 的迭代应覆盖之间的所有或几乎所有值0 and 2 n 1 w
  • Oozie Hive 动作挂起,心跳永远

    我试图通过我在 Hue 中创建的 Oozie 工作流程运行 Hive 操作 但该操作永远 心跳 并且不会执行 Hive SQL 我读过其他关于心跳永远的文章 但这篇文章似乎发生在不同的时刻 即在解析 SQL 语句之后 我检查了集群中每个节点
  • JavaScript 异常堆栈跟踪

    在 Firefox 中 我可以通过使用获取异常的堆栈跟踪exception stack 有没有办法在其他浏览器中也获得它 Edit 我实际上想自动保存堆栈跟踪 如果可能 而不是在当时对其进行调试 即我知道如何在调试器中获取堆栈跟踪 将此行放
  • 如何实现利用多个 ViewController 的 UIPageViewController

    我一直在开发一个简单的测试应用程序来了解 UIPageViewController 的细节 我已经让它工作了 但我不相信我的执行是最好的方法 我希望你们中的一些人能给我指出正确的方向 为了获得基本的了解 我使用本教程作为起点 http ww
  • 升级 local::lib 安装的所有模块

    我一直在使用 local lib 来处理服务器上 Perl 模块的安装 这样我就可以获得一些开发工作的正确版本 而不会污染系统安装 然而 系统管理员最近将 Perl 从 5 16 升级到 5 18 我现在收到与二进制模块相关的错误 例如 p
  • OpenShift Next Gen 无法挂载持久卷

    我正在尝试在 OpenShift Online Next Gen 上设置一个应用程序 我需要在运行时存储一个小文件并在启动期间再次读取它 文件的内容发生了变化 因此我不能简单地将其添加到我的源代码中 我的项目已经启动并运行 我所需要的只是持
  • 如何在 python3 和“requests”上发布图像和文本 MultipartForm?

    我正在将代码从 NodeJS 移植到 python3 我想发布图像二进制数据和文本 我该怎么做 谢谢 NodeJS filePath xxx jpeg text xxx return chakram request POST http xx
  • 设计可在 F# 中很好使用的 C# 库的指南

    我只是想指出这个问题并不是相反的 设计供 F 和 C 使用的 F 库的最佳方法 https stackoverflow com questions 10110174 best approach for designing f librari
  • 我应该如何转义 CSV 文件中的逗号和语音标记,以便它们在 Excel 中工作?

    我正在生成一个 CSV 文件 用逗号而不是制表符分隔 我的用户很可能会通过双击在 Excel 中打开 CSV 文件 我的数据可能包含逗号和语音标记 因此我将按如下方式转义这些内容 Reference Title Description 1
  • Android:我应该使用 MimeTypeMap.getFileExtensionFromUrl() 吗? [错误]

    例如 我想使用以下函数从文件 URL 获取文件扩展名 文件名 Greatest Hits Lenny Kravitz Booklet 01 2000 jpg 文件的网址 String url mnt sdcard mydev Greates