Java中的路径:IPath与IFile

时间:2023-02-07 07:38:56

在构建IFile时,传入了这样一个参数,

E:/runtime-EclipseApplication/hellome/deployed

发现IFile可以识别这个路径。

 

在路径名中,目录与目录、目录与文件之间用分隔符来分隔。这个分隔符,在windows中,用的是"/",在Unix中,用的是"/";

因为"/"又用作转义符,所以,一般用"//"。

 

在Java中,无论是IFile和IPath,设计的目标都是跨平台的。于是,搞出了两个概念,叫pathname和abstract pathname;顾名思义,abstract pathname是抽象的、操作系统无关的;而pathname是操作系统相关的。

 

操作系统相关还是无关,核心就在这个分隔符。于是,在IFile中专门定义了一个属性叫File.separator,这个分隔符是系统相关的。在windows中,它就是"/"。

 

于是,在windows中,这个pathname就可以确定了。而abstract pathname呢?可以认为它用的是unix的命名方式。

 

在IPath中,有两个方法,一个叫toString,一个叫toOSString;两者的区别就在于一个返回的是abstract pathname;一个返回的是pathname;

 

在IFile中,有一个getPath,返回的是windows的pathname。

 

另外,无论是getPath,还是IPath.toString,都是绝对路径。