是否可以移动到Java目录下一级目录?移动到一个目录下一级目录
例如,在命令提示符:
C:\Users\foo\
我可以用cd..
去:
C:\Users\
是否有可能做到这一点在Java
,因为我使用的系统得到一个目录.getProperty( “user.dir来”);然而,这不是我想要工作的目录,而是目录下的1级。
我想过使用Path类方法; subpath(i,j)
,但是如果将“user.dir”更改为另一个目录,则返回的subpath
将会不同。
是否可以移动到Java目录下一级目录?移动到一个目录下一级目录
例如,在命令提示符:
C:\Users\foo\
我可以用cd..
去:
C:\Users\
是否有可能做到这一点在Java
,因为我使用的系统得到一个目录.getProperty( “user.dir来”);然而,这不是我想要工作的目录,而是目录下的1级。
我想过使用Path类方法; subpath(i,j)
,但是如果将“user.dir”更改为另一个目录,则返回的subpath
将会不同。
File类本身可以做到这一点。
File upOne = new File(System.getProperty("user.dir")).getParentFile()
http://docs.oracle.com/javase/6/docs/api/java/io/File.html#getParentFile%28%29
在我的系统上,“..”是路径的有效组件。
这里是一个例子。
File file;
String userDir = System.getProperty("user.dir");
file = new File(userDir);
System.out.println(file.getCanonicalPath());
file = new File(userDir+"/..");
System.out.println(file.getCanonicalPath());
输出是:
C:\ano\80g\workaces\_JAV_1.0.0\CODE_EXAMPLE
C:\ano\80g\workaces\_JAV_1.0.0
非常感谢! – Jef 2012-11-29 12:25:45
由于以前的答案已经指出的那样,你可以使用File
做到这一点。另外,使用Java 7 NIO类,你似乎做,下面也应该这样做:
Paths.get(System.getProperty("user.dir") + "/..").toRealPath();
注意,“/”是Windows文件系统上的有效目录分隔符,以及(虽然我在Linux上测试这个代码)。
我相信'C:\\ Users \\ foo \\ ..'是允许的,所以你应该可以将它追加到路径中。 – Jon 2012-03-13 02:23:12
嗨,试过Path workingDirPath = Paths.get(System.getProperty(“user.dir”)+“\\ ..”); println出路径 附加..不会让我失望一级。 – sutoL 2012-03-13 02:27:55