0

私はこれに対する答えを見つけようとしてかなり長い間このウェブサイトを検索してきましたが、それを得ることができません.

私が取得しようとしているのは、資産フォルダー内のファイルのリストです。これは、フォルダー内のすべてのファイルに対して個別のアクティビティを作成することなく、これらのファイルを読み込んでさまざまな画面で使用するスマートな方法が必要なためです。これは私が現在使用しているコードです。

File file = new File("file:///android_asset/Peacefulpack.txt");
Log.e("Test", file.getName());

File folder = new File("file:///android_asset");
for(int i = 0; i < folder.listFiles().length; i++)
{
    Log.e("Test", folder.listFiles()[i].getName());
}

ファイルを含むコードの上部は正常に機能しますが、フォルダーを含むコードは機能しません。奇妙なことに、folder.listFiles() は null を返しますが、ディレクトリにファイルやサブフォルダーがない場合にのみそうする必要があります (少なくとも私が知る限り)。ただし、そこにアクセスしているので、このフォルダーにはファイルがあります。

これがヌルポインタを与えるのはなぜですか?

4

2 に答える 2

1

これを試して:

String folder = "/";
AssetManager am = getResources().getAssets();
String fileList[] = am.list(folder);
for(int i = 0; i < fileList.length; i++)
{
    Log.e("Test", fileList[i]);
}
于 2013-03-31T08:30:16.553 に答える
1

私はいつもあなたがしようとしていることを書いてきました

File folder = new File("file:///android_asset");
for(int i = 0; i < folder.listFiles().length; i++)
{
    Log.e("Test", folder.listFiles()[i].getName());
}

AssetManagerの使用。

例えば

AssetManager mgr = App.getContext().getAssetManager();
String[] listing = mgr.list("")
for(int i=0; i<listing.length; i++)
{
    Log.e("Test", listing[i]);
}
于 2013-03-31T08:31:39.887 に答える