Windows和Linux中Java代码的路径分隔符

9

在我的Java代码中,我有一些硬编码的路径,我已经写成:

String workingPath = initPath + "\\" + tmpPath;

initPathtmpPath是通过File.getParent()获取的。现在,在Windows上可以正常工作,但如果我将代码移动到Linux上,\\将会有问题,因为另外两个路径是由系统方法确定的。结果可能如下所示:

/home/mahmood/project/alpha\temp1

我该如何解决这个问题?我不想在我的代码中为Linux系统加上 /

5
在Windows和Linux系统中都可以使用/,另一种选择是使用File(File, String)来构建您的路径。 - Elliott Frisch
@ElliottFrisch 您的评论是一个好的解决方案,应该作为一个回答帖子。 - frianH
2个回答

21

有一个变量可以使用:File.separator

表示系统默认的名称分隔符,以字符串形式表示以方便使用。此字段初始化为包含系统属性file.separator值的第一个字符。在UNIX系统上,该字段的值为“/”;在Microsoft Windows系统上,它是“\”。

String workingPath = initPath + File.separator + tmpPath;

4
File类有一个可以接受父目录的构造函数。如果使用这个构造函数,就不需要手动连接路径了。
final File parent = new File("/home/mahmood/project/alpha");
final File tmp = new File(parent, "temp1");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接