【发布时间】:2016-06-25 10:53:42
【问题描述】:
我想做一个导入,查看文件夹内部并循环浏览在那里找到的文件,然后导入内容。
在我的项目中,我的文件夹位于 src/main/resources 下,但在实际的 jar 中,它将被打包为根目录下的文件夹(不在资源文件夹内),所以我不知道如何获取文件夹路径只给出它的名字。
我已经尝试通过 getResources 并将文件夹名称作为字符串传递,还尝试了 File folderPath = new File("./import") 之类的东西(使用相对路径),但这也没有用。
建议的帖子和我的帖子之间的区别在于,那里的文件夹路径是已知的(它是一个固定的硬编码位置)我需要根据类加载或类似的东西找到它
下面是我正在使用的代码
public static final String IMPORT_FILES_LOCATION ="import"; //folder name
Enumeration<URL> folderURL = null;
try {
folderURL = getClass().getClassLoader().getResources(IMPORT_FILES_LOCATION);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (folderURL != null && folderURL.hasMoreElements()) {
File folderFile = new File(folderURL.nextElement().getPath());
File[] filesToImport = folderFile.listFiles();
if(filesToImport.length > 0) {
for (File fileToImport : filesToImport) {
System.out.println("import stuff");
}
}
}
有什么想法/建议吗?
谢谢
【问题讨论】:
-
他的问题稍微复杂一些,因为该文件夹不一定是 HD 上的已知路径,而是类路径资源。 OP,您与
getResources()走在了正确的轨道上。您可以发布您在尝试此操作时使用的代码吗? -
正如 mlan 提到的,我的问题有所不同。如果您查看另一篇文章,它知道文件夹路径(它是硬编码的)。我需要一个根据文件夹名称找到该文件夹的解决方案
-
这有什么问题?您是否遇到异常,或者根本没有输出?尝试改用
getResource()。 -
文件夹URL 没有元素。如果我使用 getResource 我有同样的问题,该字段仍然为 null 我应该使用“/import”还是“./import”?