String currentpath = System.getProperty("user.dir");
System.out.println("current dir = " + currentpath);
它显示我当前的路径-
当前dir = C:\Users\TKMAHQB\Desktop\New folder\ABC
但是我希望路径为-C:\Users\TKMAHQB
我该怎么办?
答案 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文件夹,是更好的性能选择。