java - Android:删除文件名中的禁止字符

标签 java android string special-characters android-file

在我的应用程序中,我正在创建一个文件。有时我的应用程序会崩溃,这是因为文件名包含不允许的字符。我知道我可以使用 String.replace() 删除这些字符,但我不知道哪些字符是禁止的。所以我的问题:哪些字符是被禁止的,或者是否有一种方法可以用来删除所有禁止的字符?

最佳答案

有多种方法可以清理文件名,您可以选择最常用的实用方法,即 ASCII 字符 [A-Z|0-9|_] 的一小部分子集。大多数文件系统将处理名称中更大的可能字符集,但它总是与平台相关。

通常,路径分隔符、不可打印字符和具有特殊含义的字符在大多数常见文件系统中都被明确禁止,或者应该避免,因为它们在许多情况下会带来麻烦。

此外,虽然某些文件系统确实允许某些字符(方括号和\是臭名昭著的例子),但如果您需要与不允许它们的系统交换这样的文件,它们会带来很多麻烦(轶事:尝试提供Window95 系统 使用 IS0-9660 文件名且文件名中包含“\”的 CD - 保证会造成严重破坏)。

因此,虽然 Android 仅在名称中禁止其自己的字符子集,但出于互操作性的考虑,禁止在任何其他常见文件系统中禁止的任何特殊字符通常不是一个坏主意。

不应在文件名中使用的字符的通用列表:http://www.mtu.edu/umc/services/web/cms/characters-avoid/

关于java - Android:删除文件名中的禁止字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754529/

相关文章:

android - 错误 : File google-services. 缺少 json。没有它,Google 服务插件将无法运行。

android - 是否有任何Android设备或任何方法可以同时打开前后摄像头?

android - 如何在 nutiteq map 中绘制从 MapQuestApi 接收到的路线?

java - 比较两个String数组并在Java中返回比较

java - 在java字符串文字中转义反斜杠

java - 识别列表中的重复项

java - 使用 Guice 优化注册表

java - ORA-04054 : database link GMAIL. COM 不存在

java - 递归作业

c++ - string::length 返回错误值?