Libgdx 如何获取目录中的文件列表?

2022-09-02 21:30:21

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


答案 1

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


答案 2