【问题标题】:How to move some folders back after getting directory in java? [duplicate]在java中获取目录后如何将一些文件夹移回? [复制]
【发布时间】:2018-08-17 08:25:25
【问题描述】:

我使用了这段代码,它显示了我的项目目录。

System.out.println("Present Project Directory : "+ System.getProperty("user.dir"));

例如:C:\Users\Yousuf\Documents\NetBeansProjects\Store Management System

我想要做的是从通过此代码获得的目录中移回 C:\Users\Yousuf\Documents 仅两个文件夹。我该怎么办?

【问题讨论】:

  • 我的 Jframe 中有一个 Jbutton,用于截取屏幕截图。现在我想将该图像保存在 Windows 中的 Documents 或 Pictures 文件夹等文件夹中,并且我不想使用固定路径因为其他 PC 可能会有所不同。
  • 使用 String.split('\') 并重建您的路径...但这只是一种解决方法,以防您没有更好的解决方案。
  • 是的,这就是我要问的。如何重构?
  • 这取决于你的程序在哪里运行。在 Windows 上,它喜欢 "C:" + "\\" + "users"+... 在 Linux 或 Mac 上,它喜欢 "usr" + "/" + ...
  • Path documents = Paths.get(System.getProperty("user.dir")).getParent().getParent();。请注意,这只适用于您当前的配置。如果您从其他地方启动您的应用程序,那么 user.dir 就不同了。

标签: java path directory


【解决方案1】:

这对我有用,我得到了父目录的父目录...

System.out.println("Present Project Directory : "+ System.getProperty("user.dir"));
    try 
    {
        File file = new File(System.getProperty("user.dir")).getCanonicalFile();
        System.out.println("Parent directory : " + file.getParent());
        File file2 = new File(file.getParent()).getCanonicalFile();
        System.out.println("Parent directory : " + file2.getParent());
    } catch (Exception e) 
    {
        System.out.println("error");
    }

【讨论】:

    【解决方案2】:

    您可以使用相对路径 ../../ 向后导航 2 个文件夹。如果将其添加到路径的末尾,它的有效位置将是 2 个文件夹。

    之后,如果您愿意,您可以使用 normalize 功能删除多余的元素,以返回实际的路径 2 文件夹。但是,如果您只想导航到该文件夹​​,则无需对其进行规范化。

    只需将您的路径字符串放在originalPathString 的位置即可。

    Path twoFoldersBack= Paths.get(originalPathString, "../../");
    

    或者如果你想规范化路径:

    Path twoFoldersBack= Paths.get(originalPathString, "../../").normalize();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-24
      • 2015-05-05
      • 1970-01-01
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      相关资源
      最近更新 更多