我很想知道如何从Java中读取包中的所有条目。使用getRessource(),您可以获得单个文件。但是我想要他们! 我的计划是从文件夹/包中读取所有文件(不带子目录),然后使用Stream过滤条目。
希望你能帮助我。
答案 0 :(得分:1)
您可以使用Spring Framework实现此目的。即使您没有开发Spring应用程序,您仍然可以使用它们的实用程序方法。您想使用PathMatchingResourcePatternResolver
:
public Resource[] getResources(String package)
{
PathMatchingResourcePatternResolver pmrpr = new PathMatchingResourcePatternResolver();
// turns com.myapp.mypackage into /com/myapp/mypackage/*
return pmrpr.getResources("/" + package.replace(".", "/") + "/*");
}
供参考,见:
如果您使用的是Maven,请使用此依赖项:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
答案 1 :(得分:0)
您可以使用Reflections库执行此操作。
可以创建一个反射对象并让它为您进行扫描。这就像做
之类的事情一样简单Reflections reflections = new Reflections("my.package");
Set<String> resourceStrings = reflections.getResources(s -> true /*match all resources*/);
Set<URL> resources = resourceStrings.stream()
.map(s -> getClass().getResource(s))
.collect(Collectors.toSet())
答案 2 :(得分:-1)
您可以获取所有文件的列表,然后对其进行过滤:
File d = new File(System.getProperty("user.dir")); // user.dir returns the current working directory.
for(File f : d.listFiles())
{
//do what you want to do
}