目前我们有一组硬编码的字符需要检查--:*?"<>|/\
--基本上是Windows会抱怨的那些字符。然而,在Linux上运行,这太过严格了。
我知道在Java 7 NIO中,Path类应该可以智能地以与操作系统相关的方式进行检查,并在指定无效文件名时抛出InvalidPathException异常。但我们没有运行Java 7。在Java 6中有可靠的方法来做到这一点吗?
(请注意,在Windows中使用new File("foo:bar")
似乎是有效的。但如果您尝试使用FileWriter写入新的File时,实际上得到的是一个名为foo
的空文件。此时,对File的exists()调用将返回true,但它或多或少是虚假的。)
foo:bar
的奇怪之处。谢谢! - David Moles