Java是否对其自身施加了额外的限制。 Windows(upto Vista)不允许包含名称Java是否对除底层操作系统以外的文件名施加任何进一步限制?
\/< > ? * :
我知道如何验证名称(正则表达式)。
我需要验证用户输入的文件名。
我的应用程序不需要在任何其他平台上运行,当然,我宁愿独立于平台!
Java是否对其自身施加了额外的限制。 Windows(upto Vista)不允许包含名称Java是否对除底层操作系统以外的文件名施加任何进一步限制?
\/< > ? * :
我知道如何验证名称(正则表达式)。
我需要验证用户输入的文件名。
我的应用程序不需要在任何其他平台上运行,当然,我宁愿独立于平台!
不,您可以转义任何字符,Java不允许在字符串文字但文件系统允许。
此外,如果试图端口一个Windows应用程序到Mac或Unix这是最好的使用方法:
File.separator
要确定正确的文件分隔到每个平台上使用。
当您创建一个新文件时,输入的参数将通过java.io.FileSystem类的平台特定实现进行标准化。我知道没有Java特定的限制。
是的,总是使用File.separator。
Java支持任何可以使用Unicode表示的字符串(受最大长度最长为Integer.MAX_VALUE的限制),文件名只是另一种字符串。
当然,这意味着您可以尝试使用底层操作系统不支持的名称引用文件。如果你这样做,当你尝试并使用文件引用时,你会得到某种IOException ...
字符串长度最大值是Integer.MAX_VALUE,因为长度存储在一个int中。 – jjnguy 2008-09-15 15:54:35