問題
我想知道如何從本機代碼製作Android資產文件夾的文件層次結構。我正在使用AAssetManager_openDir
,但AAssetDir_getNextFileName
不會返回任何目錄名稱,所以基本上我無法深入到層次結構中,因爲我無法獲取子文件夾的名稱。有什麼辦法可以用AAssetManager
來解決這個問題,還是我應該在Java中實現這個?使用Android本機AAssetManager的文件層次結構
例
資產看起來像
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
這不是重複的https://stackoverflow.com/questions/26101371/checking-if-directory-folder-exists-in-apk-via-native-code-only? –
@AlexCohn編號與該問題的主要區別在於,我事先不知道文件夾名稱 - 我想在運行時發現它。 – vganin