18

因此,我尝试使用文件 handle.list() 方法获取目录中的文件列表,但即使目录中有文件,它也会返回一个空列表。对我来说奇怪的是它可以在设备上工作,但不能在桌面上工作。我想我知道问题是什么,但我不知道如何解决它。在方法描述中它说“在桌面上,类路径上目录的 FileType.Internal 句柄将返回一个零长度数组。”但是除了这个之外没有其他方法,所以你们认为我能做什么?

4

1 回答 1

23

“内部文件”是在桌面上运行时通过类路径找到的,因此没有简单的方法可以在类路径中“列出”目录。如果您只是使用桌面进行开发,并且不介意一些黑客攻击,您可以搜索“./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/”路径前缀 - 无需添加即可正常工作,添加后无法正常工作。所以这个解决方案已经过时了。

于 2012-10-01T23:53:48.543 回答