我的Maven资源文件夹中有一组文件:

+ src
  + main
    + resources
      + mydir
        + myfile1.txt
        + myfile2.txt


我如何迭代mydir?不仅在Eclipse中,而且从命令行和从属jar运行JUnit测试时。

File mydir = new File("mydir");
for (File f : dir.listFiles()) {
   dosomething...
}


谢谢提示!

最佳答案

果壳大致:

URL pathUrl = clazz.getClassLoader().getResource("mydir/");
if ((pathURL != null) && pathUrl.getProtocol().equals("file")) {
    return new File(pathUrl.toURI()).list();
}


经过测试; Groovy:

def resourcesInDir(String dir) {
    def ret = []
    pathUrl = this.class.getClassLoader().getResource(dir)
    if ((pathUrl != null) && pathUrl.getProtocol().equals("file")) {
        new File(pathUrl.toURI()).list().each {
            ret << "${dir}/${it}"
        }
    }
    ret
}

files = resourcesInDir("tmp/")
files.each {
    s = this.class.getResourceAsStream(it)
    println s.text
}

关于java - Maven:迭代Maven资源目录中的文件目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8995170/

10-16 12:19