|
在sun官方中文文档中,System.getProperty("")方法中有着这样的翻译:
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
其实,按照中国人的习惯,以上翻译有些别扭,我觉得应该这样翻译才能更好的被人理解:
file.separator 文件目录(或者文件路径)分隔符(在 UNIX 系统中是“/”,windows中是“\”)
path.separator 环境变量路径分隔符(在 UNIX 系统中是“:”,windows中是“;”)
line.separator 文字换行分隔符(在 UNIX 系统中是“/n”)
至于为什么要说sun官方翻译的有些别扭呢?我给大家举一些例子大家讨论下:
比如我们想要JAVA表示一个下面的文件路径:
windows环境下:
G:\book\api-1.6-cn
linux(unix)环境下:
/home/book/api-1.6-cn
为了跨平台性我们会写出如下的代码:
File[] roots = File.listRoots();// 获取磁盘分区列表
String osname = System.getProperty("os.name").toLowerCase();// 返回操作系统名称
// 按sun官方翻译应使用下面的这句,其实得出结果是错的!
// String tempPath="book"+System.getProperty("path.separator")+"api-1.6-cn";
// 按照我说提出来的翻译,应使用下面的这句,结果正确!
String tempPath = "book" + System.getProperty("file.separator")
+ "api-1.6-cn";
if (osname.indexOf("windows") != -1) {// windows下路径表示方法:
for (File file : roots) {
if (file.getPath().indexOf("G:") != -1) {
String path = file.getPath() + tempPath;
System.out.println(path);
}
}
} else if (osname.indexOf("linux") != -1) {// linux下路径表示方法:
for (File file : roots) {
if (file.getPath().indexOf("/home") != -1) {
String path = file.getPath() + tempPath;
System.out.println(path);
}
}
}
|
|