【问题标题】:Finding the right Path寻找正确的路径
【发布时间】:2019-03-25 23:00:22
【问题描述】:

我想用Apache PDFBox 生成一个PDF 并把它放在docs/file1.pdf 下。文件夹docs 已经创建好了,但是我不知道如何从Java 中访问它。

我的项目结构如下:

  • build
  • nbprojects
  • docs
  • src

    • java
      • generator
        • generator.java
  • [其他一些文件夹]

当我尝试时:

System.getProperty("user.dir");

我明白了(我在 Linux 上):

/home/user1/.netbeans/9.0/config/GF_5.0/domain1/config

我的猜测是上升 3 级:

../../../docs/file1.pdf

但它说

java.io.FileNotFoundException: ../../../docs/file1.pdf 找不到

问题:如何从src/java/generator/generator.java 访问docs

【问题讨论】:

    标签: java file io path


    【解决方案1】:

    一种方法是使用绝对路径。或者您可以使用此打印语句根据您的 java 程序了解您的当前目录,

    System.out.println("Current Dir: " + new File(".").getAbsolutePath());
    

    它会打印出类似的东西,

    \pkr\work7\ws\test\.
    

    一旦你知道了这个路径,你就可以通过放置 .. 来正确地构建你的路径,并且能够正确地读取你的文件。

    【讨论】:

    • 我得到的目录完全相同:/home/user1/.netbeans/9.0/config/GF_5.0/domain1/config
    • 您的 docs 文件夹在哪里?你能给出 docs 文件夹的绝对路径吗?
    • 那你可以试试../../../../../NetBeansProjects/project1/docs/file1.pdf 但是你为什么不用绝对路径呢?
    • 因为它也应该在不同的机器上工作。我不确定,如果其他人导入我的项目,他们将使用哪些路径。
    • 那么即使是这个相对(或绝对)路径也可能无法在其他机器上工作,除非它们遵循像你一样的结构。如果其他人有类似 /home/user1/NetBeansProjects/project222/docs 的路径,那么无论如何它都会失败。
    猜你喜欢
    • 2018-11-14
    • 2019-04-08
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多