所以我试图用文件handle.list()方法获取目录中的文件列表,但即使目录中有文件,它也会返回一个空列表。对我来说似乎很奇怪的是它确实可以在设备上运行,但它在桌面上不起作用。我想我知道问题是什么,但我不知道如何解决它。在方法描述中它说“在桌面上,类路径上的目录的FileType.Internal句柄将返回零长度数组。”,但没有其他方法,所以你们认为我能做什么? / p>
答案 0 :(得分:20)
在桌面上运行时,可以通过类路径找到“内部文件”,因此没有简单的方法可以在类路径中“列出”目录。如果您只是使用桌面进行开发,并且不介意一些黑客攻击,则可以在“./bin/”中搜索丢失的文件。
像这样:
FileHandle dirHandle;
if (Gdx.app.getType() == ApplicationType.Android) {
dirHandle = Gdx.files.internal("some/directory");
} else {
// ApplicationType.Desktop ..
dirHandle = Gdx.files.internal("./bin/some/directory");
}
for (FileHandle entry: dirHandle.list()) {
// yadda ...
}
有关详细信息,请参阅:http://bitiotic.com/blog/2012/05/15/libgdx-internal-files-hacks/
更新:这不再正确。不必添加“./bin/”路径前缀 - 在不添加它的情况下运行良好,并且在添加时不起作用。所以这个解决方案已经过时了。