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 回答