我正在使用Eclipse + Java并尝试在我当前的项目下创建文件。我使用过new File("")
并且不理解它的行为。
File dir = new File("");
System.out.println(dir.getAbsolutePath()+" | "+dir.isDirectory()+" | "+dir.exists());
String absolutePathname = dir.getAbsolutePath();
dir = new File(absolutePathname);
System.out.println(dir.getAbsolutePath()+" | "+dir.isDirectory()+" | "+dir.exists());
结果:
D:\workspace\jumbo-converters\jumbo-converters-compchem | false | false
D:\workspace\jumbo-converters\jumbo-converters-compchem | true | true
为什么我有两个具有相同绝对路径名的文件,其中一个存在而且其中一个不存在?
我正在使用Java 1.6和Eclipse Helios
答案 0 :(得分:7)
文件目录=新文件(“”); 表示名称为“空字符串”的文件 当然这个文件不存在,也不是目录。 要引用当前目录,请使用File dir = new File(“。”); 看看这段代码:
File dir = new File("");
System.out.println(dir.getAbsolutePath()+" | "+dir.isDirectory()+" | "+dir.exists());
System.out.println("file name is: |" + dir.getName() + "|");
String absolutePathname = dir.getAbsolutePath();
dir = new File(absolutePathname);**
System.out.println(dir.getAbsolutePath()+" | "+dir.isDirectory()+" | "+dir.exists());
System.out.println("file name is: |" + dir.getName() + "|");
注意不同的文件名:
C:\Program Files (x86)\Java\jdk1.6.0_21\bin | false | false
file name is: ||
C:\Program Files (x86)\Java\jdk1.6.0_21\bin | true | true
file name is: |bin|
答案 1 :(得分:3)
因为,您提出以下问题:
如果我得到“”的完整路径,它是什么? D:\workspace\jumbo-converters\jumbo-converters-compchem
“”是真正的目录吗? No.
“”是否以某种方式存在? No.
如果我得到“D:\ workspace \ jumbo-converters \ jumbo-converters-compchem”的完整路径,它是什么? D:\workspace\jumbo-converters\jumbo-converters-compchem
“D:\ workspace \ jumbo-converters \ jumbo-converters-compchem”是一个真正的目录吗? Yes.
“D:\ workspace \ jumbo-converters \ jumbo-converters-compchem”是否以某种方式存在? Yes.
#1工作的原因是因为任何相对路径(即,不以/
或驱动器开头的路径)可以通过将其与当前目录组合而成为绝对路径。所以:
"D:\workspace\jumbo-converters\jumbo-converters-compchem" + "" == "D:\workspace\jumbo-converters\jumbo-converters-compchem"