我制作了一个读取音频文件的程序。
起初我是用绝对路径做的,因为它更容易开发。
然后我将它改为相对路径,因为我想将它压缩为*jar
。
所以我编写了这个方法(起初只是在代码之后很短的时间:
1.: at first I make a FileArray to save the Files
2.: make the array to save the AudioClip
3.: for loop to read the Clips
现在代码:
private AudioClip[] liesAudioDateien (File inputFile) {
File[] dateFileArray;
AudioClip[] tracks;
dateFileArray = inputFile.listFiles();
tracks = new AudioClip[dateFileArray.length];
for (int i = 0; i < tracks.length; i++) {
if (dateFileArray[i].isFile()) {
try {
tracks[i] = Applet.newAudioClip(dateFileArray[i].toURL());
} catch (IOException ex) {
System.err.println("Error!: -- " + ex.toString());
}
}
}
return tracks;
}
inputFile.listfiles()
返回null,因为我的路径似乎不行。
但我的路径是好的,因为我让它在命令行上打印。
D:\Eclipse\MyProjekt\dist\MyProject.jar\audio
。
在NetBeans中,它确实有效。 If I make a jar file, it doesn't work.
我已经尝试过:
D:\Eclipse\MyProjekt\dist\MyProject.jar\audio\
/
代替\
答案 0 :(得分:1)
您确定这是正确的文件路径吗?
D:\Eclipse\MyProjekt\dist\MyProject.jar\audio
音频目录位于名为MyProject.jar 的文件夹中?
如果您的音频文件位于.jar文件中,则无法使用File
类列出它们。你需要做的是read the entries from the .jar file, like in this question。