包中文件的绝对路径

时间:2014-02-21 10:47:55

标签: java

假设我有一个包:com.example.resources并且在其中我有picture.jpgtext.txt - 我如何只使用包路径来标识{{1}的绝对文件路径}和picture.jpg

这是对的吗?

text.txt

2 个答案:

答案 0 :(得分:1)

  

"我试图在应用程序中引用这些文件,这样当我将应用程序部署到不同的系统时,我不必重新配置每个资源的位置"

您不想使用File,它将从本地计算机的文件系统加载,您希望通过类路径加载,因为{{3} 应该被阅读。使用embedded resources作为文本文件,getClass().getResourceAsStream(..)作为图片

根据您提供的套餐名称,您引用的当前路径似乎 工作。

查看getClass().getReource(..)this answer作为参考。

答案 1 :(得分:-1)

我已经想出了怎么做。这是我使用的代码:

public String packagePathToAbsolutePath(String packageName, String filename) {
    String absolutePath = "File not found";
    URL root = Thread.currentThread().getContextClassLoader().getResource(packageName.replace(".", "/"));
    File[] files = new File(root.getFile()).listFiles();
    for (File file : files) {
        if (file.getName().equals(filename)) {
            absolutePath = file.getName();
            return absolutePath;
        }
    }
    return absolutePath;
}

这个方法非常有用,因为它允许我在应用程序中配置资源路径,这样当我在不同系统上运行应用程序时,我不必重新配置任何路径。

相关问题