使用外部目标列出 Libgdx 目录中的所有文件

List all files in directory in Libgdx using external destination

我目前正在尝试使用 libgdx 文件系统列出目录中的所有文件,当我进入目录时,我想查看列表功能开始 return 列表长度为 0,尽管我确定它不是空的。

我在 android phone 上进行测试,并逐步深入到 phone。这些是我用来检查列表以及它 return 编辑了多少项目的行。请让我知道我做错了什么或解决方法谢谢。

Gdx.files.absolute(".").list().length()               //Returned 63
Gdx.files.absolute("./storage").list().length         //Returned 4
Gdx.files.absolute(./storage/emulated).list().length  //Returned 0

同样,路径 ./storage/emulated 绝对不是空的。我需要申请特别许可才能进入该区域吗?请 lmk。提前致谢。

开始之前 如果在 运行 时间未获得用户许可,请明确 Android 您的 targetSdkVersion 小于 23,然后再继续与您的文件 IO 相关的任何工作。对于当前的 targetSdkVersion 检查 android build.gradle 文件的 defaultConfig,如果不存在则检查 AndroidManifest.xml 文件。

将此权限添加到 AndroidMainfest.xml 文件。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我知道外部目标是我们保存自己的数据(如视频、音乐等)的地址。

Gdx.files.getExternalStoragePath() 在 Android 中提供路径 /storage/emulated/0/ 和桌面上的用户目录,如下所示 C:\Users\Abhishek Aryan\

我们想要外部存储中的所有文件(外部存储并不意味着 SD 卡)。 /storage/emulated/0/ 表示内置存储。

FileHandle dirHandle = Gdx.files.external("/");    

for (FileHandle entry: dirHandle.list()) {
     System.out.println(entry.toString());
}

通过递归,您可以获得存储中的所有文件和文件夹。