Android:清空包含文件的资产文件夹

时间:2013-03-31 08:21:50

标签: java android nullpointerexception

我一直在搜索这个网站很长一段时间,试图找到答案,但我无法得到它。

我想要获得的是资产文件夹中的文件列表。这是因为我希望有一种智能的方法来加载这些文件并在不同的屏幕中使用它们,而无需为文件夹中的每个文件编写一个serparate活动。这是我目前正在使用的代码。

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,但只有在目录中没有文件或子文件夹时才会这样做(至少据我所知)。但是,由于我正在访问该文件夹,因此该文件夹中有文件。

为什么这会给我一个空指针?

2 个答案:

答案 0 :(得分: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]);
}

答案 1 :(得分: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]);
}