移动到一级目录
是否可以在Java中向下移动一级目录?
例如,在命令提示符中:
C:\Users\foo\
我可以用cd..
去:
C:\Users\
是否可以在Java
执行此操作,因为我使用System.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
正如之前的答案所指出的那样,你可以使用File
来做到这一点。 或者,使用Java 7 NIO类,正如您似乎正在做的那样,以下内容应该执行相同的操作:
Paths.get(System.getProperty("user.dir") + "/..").toRealPath();
请注意,“/”也是Windows文件系统上的有效目录分隔符(尽管我在Linux上测试了此代码)。
private static void downDir(int levels) { String oldPath = System.getProperty("user.dir"); String[] splitedPathArray = oldPath.split("/"); levels = splitedPathArray.length - levels; List splitedPathList = Arrays.asList(splitedPathArray); splitedPathList = splitedPathList.subList(0, levels); String newPath = String.join("/", splitedPathList); System.setProperty("user.dir", newPath); }
应该管用。 对于级别,只需指定1。
- 线程“main”中的exceptionjava.util.NoSuchElementException:找不到行 – 使用scanner输入
- 将字节数组值以little endian顺序转换为short值
- 如何在java中访问打印机队列
- Hibernatevalidation失败时出现意外的UnsupportedOperationException
- 如何删除自定义按钮边框上的“妊娠纹”?
- 从Spring注释配置初始化camel
- 使用Selenium Webdrivers方法“browser.helperApps.neverAsk.saveToDisk”如何在点击链接时自动下载文件
- libsvm java实现
- “新BigDecimal(13.3D)”导致不精确的“13.3000000000000007105 ..”?