Java 如何在只知道文件夹名称的文件夹中循环浏览文件?

Java 如何在只知道文件夹名称的文件夹中循环浏览文件?,java,directory,Java,Directory,我想做一个导入,在一个文件夹中查找,循环查找找到的文件,然后导入内容 在我的项目中,我将文件夹放在src/main/resources下,但在实际的jar中,它将打包为根目录下的文件夹(不在resources文件夹中),因此我不知道如何获得只给出名称的文件夹路径 我尝试过通过getResources传递文件夹名,并将其作为字符串传递,还尝试了类似于File folderPath=new File(“./import”)(使用相对路径)的方法,但也不起作用 建议的帖子和我的帖子之间的区别在于,在这

我想做一个导入,在一个文件夹中查找,循环查找找到的文件,然后导入内容

在我的项目中,我将文件夹放在src/main/resources下,但在实际的jar中,它将打包为根目录下的文件夹(不在resources文件夹中),因此我不知道如何获得只给出名称的文件夹路径

我尝试过通过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");
            }
        }
    }
publicstaticfinalstringimport\u FILES\u LOCATION=“IMPORT”//文件夹名
枚举folderURL=null;
试一试{
folderURL=getClass().getClassLoader().getResources(导入文件位置);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
if(folderURL!=null&&folderURL.hasMoreElements(){
File folderFile=新文件(folderURL.nextElement().getPath());
File[]filesToImport=folderFile.listFiles();
如果(filesToImport.length>0){
对于(文件fileToImport:filesToImport){
System.out.println(“导入内容”);
}
}
}
有什么想法/建议吗


谢谢

我通过添加一个存储导入文件夹位置的配置文件属性解决了这个问题。系统会提示用户输入位置,如果该字段为空,则会提供默认值(我们有一个用于安装模块的GUI)


它仍然不能解决最初的问题,但它是一个可行的解决方法。希望它有帮助

考虑到文件夹不一定是HD上的已知路径,而是类路径资源,他的问题的可能重复稍微复杂一些。哦,您使用
getResources()
的方法是正确的。你能发布一下你尝试这项技术时使用的代码吗?正如mlan提到的,我的问题是不同的。如果你看另一篇文章,它知道文件夹路径(它是硬编码的)。我需要一个解决方案,找到该文件夹的基础上,它的名称什么是不工作的呢?您是否得到异常,或者根本没有输出?尝试改用
getResource()
。folderURL没有元素。如果我使用getResource,我也会遇到同样的问题,那么该字段将保持为空。我应该使用“/import”还是“/import”?