在构建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,都是绝对路径。