号
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);
EDITのように見えます
例
AAssetDir_getNextFileName
の実装では、文字通り出力からディレクトリをフィルタリングすることがわかりました。 Link to source code
これは、https://stackoverflow.com/questions/26101371/checking-if-directory-folder-exists-in-apk-via-native-code-onlyの複製ではありませんか? –
@AlexCohnいいえ。その質問との主な違いは、あらかじめフォルダ名がわからないことです。実行時にそれを発見したいのです。 – vganin