Windows和Linux的文件路径名

时间:2014-01-07 19:00:25

标签: java

以下是我的Windows目录的路径。通常路径应该是\而不是//但两者似乎都有效。

String WinDir = "C://trash//blah//blah";

Linux路径也是如此。法线应该有/而不是//。下面和上面的代码片段工作正常,并将获取指定文件的内容。

String LinuxDir = "//foo//bar//blah"

所以,两者都使用奇怪的文件路径声明,但两者似乎都运行正常。请详细说明。

例如,

File file = new File(WinDir); file.mkdir();

3 个答案:

答案 0 :(得分:16)

通常,在Windows上指定文件路径时,您将使用反斜杠。但是,在Java和Windows世界之外的许多其他地方,反斜杠是转义字符,因此您必须将它们加倍。在Java中,Windows路径通常如下所示:String WinDir = "C:\\trash\\blah\\blah";。另一方面,正斜杠不需要加倍,并且可以在Windows和Unix上运行。双正斜杠是没有害处的。它们对路径没有任何作用,只占用空间(//相当于/./)。看起来有人只是将所有反斜杠的空间转换为正斜杠。你可以删除它们。在Java中,有一个名为File.separator(字符串)和File.separatorChar(字符)的字段,它为您提供正确的分隔符(/\),具体取决于在你的平台上。在某些情况下使用它可能更好:String WinDir = "C:" + File.separator + "trash" + File.separator + "blah" + File.separator + "blah";

答案 1 :(得分:0)

使用java.nio.path,您甚至可以获得独立的OS路径,而不必担心路径分隔符。

public class PathsGetMethod {
    public static void main(String[] args) {
        Path path = Paths.get("C:\\Users\\conta\\OneDrive\\", "desktop", "data");
        System.out.println(path); 
        //C:\Users\conta\OneDrive\desktop\data
    }
}

答案 2 :(得分:-6)

字符串中的双正斜杠“//”引用空目录。所以它是/“emptydirectory”/目录。