如何只知道文件夹名称来循环文件夹内的文件?

时间:2016-03-10 14:24:52

标签: java directory

我想进行一个导入,查看文件夹内部并循环查找那里找到的文件然后导入内容。

在我的项目中,我有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");
            }
        }
    }

任何想法/建议?

谢谢

1 个答案:

答案 0 :(得分:0)

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

它仍然无法解决最初的问题,但它是一种有效的解决方法。希望它有所帮助