当File类与平台无关时,为什么File.isAbsolute()平台依赖?

时间:2011-03-01 12:52:58

标签: java file

来自File类JavaDoc:

  

文件和目录路径名的抽象表示。

     

用户界面和操作系统使用依赖于系统的路径名字符串来命名文件和目录。该类提供了一个抽象的,与系统无关的分层路径名视图。

为什么方法.isAbsolute()平台依赖? (在Win和Linux上返回/tmp的不同结果)并且不检查文件是绝对的还是Linux或Windows? File类如何通过我的代码中的File猜测我尝试表示哪个平台的文件?我不一定代表本地文件系统的文件。

2 个答案:

答案 0 :(得分:2)

它必须知道您感兴趣的平台,并且当前的平台是一个非常好的猜测!

Linux /tmp是绝对的。在Windows上它不是 - 它与您当前的驱动器相关。

答案 1 :(得分:1)

  

我不一定代表本地文件系统的文件

然后您不应该使用FileFile可以轻松访问本地文件系统,并不代表非本地资源。

还有其他系统独立的类,例如URIURL,你应该使用(URL有一些设计缺陷,所以更喜欢URI)。