除了底层操作系统外,Java是否对文件名强加了其他限制?
时间:2020-03-05 18:53:41 来源:igfitidea点击:
Java是否施加了自己的任何额外限制。 Windows(最高为Vista)不允许名称包含
\ / < > ? * :
我知道如何验证名称(正则表达式)。
我需要验证用户输入的文件名。
我的应用程序不需要在任何其他平台上运行,但是,当然,我希望是独立于平台的!
解决方案
回答
不,我们可以转义Java不允许在String文字中但文件系统允许的任何字符。
另外,如果尝试将Windows应用程序移植到Mac或者Unix,则最好使用:
File.separator
确定在每个平台上使用的正确文件分隔符。
回答
创建新文件时,输入的参数将由java.io.FileSystem类的特定于平台的实现标准化。我没有Java特定的限制。
是的,请始终使用File.separator。
回答
Java支持可以用Unicode表示的任何字符串(最大可笑的最大长度为Integer.MAX_VALUE),文件名只是另一种字符串。
当然,这意味着我们可以尝试使用基础操作系统不支持的名称来引用文件。如果执行此操作,则在尝试使用File引用时会得到某种IOException。