android资产管理器

时间:2011-12-13 20:43:04

标签: android assets

我需要在资产中获得文件夹的绝对路径。 有人喜欢这样的SD卡:

final String sdDir = Environment.getExternalStorageDirectory() + "Files";

我做错了什么?

enter image description here

首先我尝试以这种方式获得路径(在绿色的ractangle中),但我得到“假”。 然后我评论这个块并尝试从getAssets()获取路径.list(); 但我第一次看到3个文件夹。

我希望像“绿色”那样大规模,但我需要使用资产中的文件:

Look the image

帮助我获取Files文件夹的绝对路径。

2 个答案:

答案 0 :(得分:16)

我不确定你要做什么,所以我会尝试覆盖基础,也许这会有所帮助。

  • 如果您只想获取资产中的内容列表,那么 使用getAssets().list("Files")。 (你必须使用子目录, 因为this)。

  • 如果您尝试获取资产目录的绝对路径 (或任何子目录),你不能。无论资产目录中是什么 在APK中。它不像SD卡那样在外部存储器中。

  • 如果您尝试打开资源目录中的文件,请使用 AssetManager.open(filename)获取InputStream。这里, filename应该是资产目录的相对路径。


修改

我不确定你是什么意思“大规模”,但是如果你想从资产而不是SD卡加载文件black.png,那么写下:

// must be called from Activity method, such as onCreate()
AssetManager assetMgr = this.getAssets();
mColors = new Bitmap[] {
    BitmapFactory.decodeStream(assetMgr.open("black.png"));
    // and the rest
};

答案 1 :(得分:1)

资产存储在APK文件中,因此没有绝对路径,而不是应用程序可以使用的路径。但是,我建议看一下file:/// android_asset。它可能符合您的需求。关于如何在WebView中显示资产的Here is a good example