无法从Java中的当前目录获取先前的路径名2文件夹

时间:2018-12-05 14:40:39

标签: java

String currentpath = System.getProperty("user.dir");

System.out.println("current dir = " + currentpath);

它显示我当前的路径- 当前dir = C:\Users\TKMAHQB\Desktop\New folder\ABC

但是我希望路径为-C:\Users\TKMAHQB

我该怎么办?

2 个答案:

答案 0 :(得分:3)

您可能要使用Path,然后给它的父母打电话所需的次数:

System.out.println(Paths.get(currentpath).getParent().getParent().getParent());

答案 1 :(得分:1)

尝试一下:

String currentpath = System.getProperty("user.home");

这是包含所有系统属性的完整Javadoc

  

user.name->用户的帐户名

     

user.home->用户的主目录

     

user.dir->用户的当前工作目录


“ @ rilent-如果我想要C:\ Users \ TKMAHQB \ Desktop,那么代码将是什么”

String currentpath = System.getProperty("user.home") + File.separator + "Desktop"; 

如果文件夹可以变化,那么请看Arnaud的回答,我认为您需要user.home文件夹路径。


新编辑:

  

对不起,我重新提出了问题。我的上一个目录已修复。   是正确的示例,请在上面忽略..... case1)   C:\ Folder1 \ Folder2 \ Folder3 \ ABC \ Folder5 \ Folder6我想导航到   ABC ....第二种情况)C:\ Folder1 \ Folder2 \ ABC \ Folder5 \ Folder6 .....   应该是从背面进入ABC文件夹的方式

您有两种可能,如果您知道文件夹的名称,则循环 getParent()直到找到所需的文件夹名称,或者从 user.home 开始然后按照上面我的答案所示建立文件夹名称的路径

您希望您的应用程序根据其相对位置知道是返回3个文件夹还是返回5个文件夹,Java中没有黑魔法……这就是您的应用程序崩溃的原因。

如果要从背面获取它,则必须递归搜索目录,这是一种简单的方法:mkyong.com/java/search-directories-recursively-for-file-in-java或使用File.listFiles(String)。我认为从user.dir目录开始,然后使用getParent()循环直到到达ABC文件夹,是更好的性能选择。