以下是我的Windows目录的路径。通常路径应该是\而不是//但两者似乎都有效。
String WinDir = "C://trash//blah//blah";
Linux路径也是如此。法线应该有/而不是//。下面和上面的代码片段工作正常,并将获取指定文件的内容。
String LinuxDir = "//foo//bar//blah"
所以,两者都使用奇怪的文件路径声明,但两者似乎都运行正常。请详细说明。
例如,
File file = new File(WinDir);
file.mkdir();
答案 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”/目录。