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

时间:2013-11-03 15:22:14

标签: java android string special-characters android-file

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

2 个答案:

答案 0 :(得分:3)

有几种清理文件名的方法,你可以选择最低的常用实用程序,这是ASCII字符的一小部分[A-Z | 0-9 | _]。大多数文件系统将在名称中处理更大的可能字符集,但它总是一个特定的平台。

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

此外,虽然某些文件系统允许某些字符(方括号和\是臭名昭着的例子),但如果你需要用不允许它们的系统交换这样的文件,它们会带来很多麻烦(轶事:尝试喂食)一个Window95系统一张CD,使用IS0-9660文件名,文件名中包含“\” - 保证havoc。)

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

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

答案 1 :(得分:0)

我想这个会帮到你:

它读取允许所有UTF-8(默认情况下)但是有一些保留字符。

你有哪些问题?