0

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

4

2 回答 2

5

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

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

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

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

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

于 2013-11-03T19:22:33.873 回答
1

我想这个会帮助你:

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

你有哪些问题?

于 2013-11-03T15:25:46.837 回答