Java是否会对其自身施加任何额外限制。 Windows(upto Vista)不允许包含名称
\ / < > ? * :
我知道如何验证名称(正则表达式)。
我需要验证用户输入的文件名。
我的应用程序不需要在任何其他平台上运行,当然,我宁愿独立于平台!
答案 0 :(得分:2)
不,您可以转义Java在字符串文字中不允许的任何字符,但文件系统允许。
此外,如果尝试将Windows应用程序移植到Mac或Unix,最好使用:
File.separator
确定要在每个平台上使用的正确文件分隔符。
答案 1 :(得分:0)
当您创建新文件时,输入的参数将通过java.io.FileSystem类的特定于平台的实现进行规范化。我不知道Java特定的限制。
是的,总是使用File.separator。
答案 2 :(得分:0)
Java支持任何可以用Unicode表示的字符串(受一些可笑的长最大长度,Integer.MAX_VALUE),文件名只是另一种字符串。
当然,这意味着您可以尝试使用底层操作系统不支持的名称来引用文件。如果这样做,当您尝试使用文件引用时,您将获得某种IOException ...