从java项目中的资源文件夹获取所有文件名

从java项目中的资源文件夹获取所有文件名,java,resources,Java,Resources,现在我正在手动将歌曲文件名写入字符串数组,然后将字符串发送到InputStream is=this.getClass().getResourceAsStream(文件名)播放歌曲 我更愿意遍历resources文件夹中的所有歌曲名称,并将它们加载到数组中,这样每次添加歌曲时,我就不需要手动将其键入数组中 我的所有歌曲都位于resources文件夹中: 是否有java方法或其他方法来获取这些名称 当我导出为.jar时,这些文件需要工作 我想我可以用这样的东西 InputStream is=thi

现在我正在手动将歌曲文件名写入字符串数组,然后将字符串发送到
InputStream is=this.getClass().getResourceAsStream(文件名)播放歌曲

我更愿意遍历resources文件夹中的所有歌曲名称,并将它们加载到数组中,这样每次添加歌曲时,我就不需要手动将其键入数组中

我的所有歌曲都位于
resources
文件夹中:

是否有java方法或其他方法来获取这些名称

当我导出为
.jar
时,这些文件需要工作

我想我可以用这样的东西

InputStream is=this.getClass().getClassLoader().getResourceAsStream(“resources/”)

是否有一个
listFiles()
或类似的东西


谢谢

否,因为类路径在Java中是动态的。任何额外的Jar都可以用于包,类加载器可以像想象的那样动态,甚至可以根据需要动态创建类或资源

如果您有一个特定的JAR文件,并且知道该JAR文件中的路径,那么您可以简单地将该文件视为归档文件,并通过
java.util.JAR.JarFile
访问它,该文件允许您列出文件中的所有条目

JarFile jar = new JarFile("res.jar");
Enumeration<JarEntry> entries = jar.entries();
while (entries.hasMoreElements()) {
    JarEntry entry = entries.nextElement();
    System.out.println(entry.getName());
}
JarFile jar=newjarfile(“res.jar”);
枚举条目=jar.entries();
while(entries.hasMoreElements()){
JarEntry=entries.nextElement();
System.out.println(entry.getName());
}

如果您想在不知道JAR文件名和路径的情况下(例如,通过JAR本身中的类)执行此操作,则需要按照Evgeny的建议动态获取文件名;只需使用您自己的类名(包括包;您的屏幕截图看起来像是在默认包中,这是个坏主意)。

您可以尝试类似的方法

Enumeration<URL> e = ClassLoader.getSystemResources("org/apache/log4j");
while (e.hasMoreElements()) {
   URL u = e.nextElement();
   String file = u.getFile();
...
Enumeration e=ClassLoader.getSystemResources(“org/apache/log4j”);
而(e.hasMoreElements()){
URL u=e.nextElement();
String file=u.getFile();
...
文件:/D:/.repository/log4j/log4j/1.2.14/log4j-1.2.14.jar!/org/apache/log4j

从这里提取jar路径,并使用
JarFile
class了解org/apache/log4j内容


如果它被解包,您将获得直接路径并使用
File.listFIles

,这样我可以一次读取一个文件名,但不能将所有文件名放入一个数组中并按我的意愿发送它们
getResourceAsStream
?我不知道我是否正确理解您的意思。当然,您可以迭代这些条目并构建一个数组(或更好的数据结构)资源标识符。
getResourceAsStream
只接受单个标识符。这就是我想做的。我想将所有歌曲名称作为字符串,放入我自己的字符串数组中。然后将它们作为单个路径加载到
getResourceAsStream
。我只是不知道如何从
资源中获取所有歌曲名称你能帮我弄清楚如何在
参考资料
中遍历歌曲名吗?