Java是否对底层操作系统以外的文件名施加了进一步的限制?

时间:2008-09-15 15:12:55

标签: java operating-system filesystems

Java是否会对其自身施加任何额外限制。 Windows(upto Vista)不允许包含名称

\ / < > ? * :

我知道如何验证名称(正则表达式)。

我需要验证用户输入的文件名。

我的应用程序不需要在任何其他平台上运行,当然,我宁愿独立于平台!

3 个答案:

答案 0 :(得分:2)

不,您可以转义Java在字符串文字中不允许的任何字符,但文件系统允许。

此外,如果尝试将Windows应用程序移植到Mac或Unix,最好使用:

File.separator

确定要在每个平台上使用的正确文件分隔符。

答案 1 :(得分:0)

当您创建新文件时,输入的参数将通过java.io.FileSystem类的特定于平台的实现进行规范化。我不知道Java特定的限制。

是的,总是使用File.separator。

答案 2 :(得分:0)

Java支持任何可以用Unicode表示的字符串(受一些可笑的长最大长度,Integer.MAX_VALUE),文件名只是另一种字符串。

当然,这意味着您可以尝试使用底层操作系统不支持的名称来引用文件。如果这样做,当您尝试使用文件引用时,您将获得某种IOException ...