Windows和Linux环境的独立应用程序
当我使用Windows环境时,文件系统将类似于c:\ file \ abc \ xyz \ sample.txt 在linux环境中,文件系统为/home/qa/file/abc/xyz/sample.txt
abc和xyz是取决于用户点击的文件夹的名称。 (abc是国家代码文件夹)& (xyz是语言文件夹)
要构建路径,我使用
之类的属性base_path:/ home / test / file /或c:\ test \ file \ file_name:sample.txt
在程序中构建路径是:
String path = base_path + country_code +“/”+ language_name +“/”+ file_name(Linux的“/”)
字符串路径= base_path + country_code +“\”+ language_name +“\”+ file_name(Windows的“\”)
Linux示例:
/home/test/file/spain/es/sample.txt
Windows示例:
C:\测试\文件\意大利\它\ sample.txt的
每次用户点击时,country_code和language_name都会有所不同。
每当我用不同的环境测试应用程序时,我将文件分隔符更改为“/”或“\”(windows和linux)。如何在不更改文件分隔符的情况下执行代码。
(如果我错过了什么,告诉我我会更新相同的) 谢谢你。
答案 0 :(得分:2)
您可以从java.io.File.separatorChar(public static final char)获取分隔符 或包装为String java.io.File.separator(public static final String) - “系统相关的默认名称 - 分隔符,为方便起见,表示为字符串”。 请参阅:http://docs.oracle.com/javase/6/docs/api/java/io/File.html#separator
答案 1 :(得分:0)
Windows接受/作为有效的文件分隔符,因此无需来回更改它,只需在任何地方使用正斜杠。
请注意,Windows甚至接受混合分隔符字符串作为有效路径,例如“C:\ test \ file \ italy / it / sample.txt”将起作用。
答案 2 :(得分:0)
Java具有可以查询文件分隔符的系统属性。如果您使用System.getProperty("file.separator")
,它将返回“\”或“/”,具体取决于您运行的平台。或者使用File.separator
,这也是系统相关的默认文件分隔符。
答案 3 :(得分:0)
尝试System.getProperies中的内容,如下所示:
public class So3803335 {
public static void main(String[] arguments) {
System.out.println("java home dir: "+System.getProperty("java.home"));
System.out.println("user dir: "+System.getProperty("user.dir"));
System.out.println("user home: "+System.getProperty("user.home"));
System.out.println("file separator: "+System.getProperty("file.separator"));
}
}
在我的防风盒上,它说:
java home dir: C:\Program Files\Java\jdk1.6.0_20\jre
user dir: D:\home\ray\dev\stsworkspace\rtec
user home: C:\Documents and Settings\ray
file separator: \
在我的linux盒子上它说:
java home dir: /usr/lib/jvm/java-6-sun-1.6.0.17/jre
user dir: /home/ray
user home: /home/ray
file separator: /