【发布时间】:2018-02-23 19:13:08
【问题描述】:
问题
我想知道如何从原生代码制作 Android 中资产文件夹的文件层次结构。我正在使用AAssetManager_openDir 但AAssetDir_getNextFileName 不返回任何目录名称,所以基本上我无法深入了解层次结构,因为我无法获取子文件夹的名称。有没有办法用AAssetManager 解决这个问题,或者我应该用Java 实现这个?
示例
资产看起来像
a/
file1
file2
b/
file3
c/
file4
C++ 代码
AAssetDir* assetDir = AAssetManager_openDir(env, "");
// filename is NULL since there is only folders at the root folder
const char* filename = AAssetDir_getNextFileName(assetDir);
AAssetDir_close(assetDir);
AAssetDir* assetDir = AAssetManager_openDir(env, "a");
// filename is "file1"
const char* filename = AAssetDir_getNextFileName(assetDir);
// filename is "file2"
filename = AAssetDir_getNextFileName(assetDir);
AAssetDir_close(assetDir);
编辑:
我发现AAssetDir_getNextFileName 实现会从输出中过滤目录。
Link to source code
【问题讨论】:
-
@AlexCohn 不。这个问题的主要区别是我事先不知道文件夹名称 - 我想在运行时发现它。
标签: android c++ android-ndk android-assets