我需要在资产中获得文件夹的绝对路径。 有人喜欢这样的SD卡:
final String sdDir = Environment.getExternalStorageDirectory() + "Files";
我做错了什么?
首先我尝试以这种方式获得路径(在绿色的ractangle中),但我得到“假”。 然后我评论这个块并尝试从getAssets()获取路径.list(); 但我第一次看到3个文件夹。
我希望像“绿色”那样大规模,但我需要使用资产中的文件:
帮助我获取Files文件夹的绝对路径。
答案 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。