【发布时间】:2014-10-09 12:04:14
【问题描述】:
我有一个完整的文件夹,我想将它放在 R.raw 文件夹中,使其看起来像这样:
raw/thor/myfirstfile.jpg
raw/thor/mysecondfile.m4a
raw/thor/mythirdfile.json
raw/batman/myfirstfile.jpg
raw/batman/mysecondfile.m4a
raw/batman/mythirdfile.json
这样我就可以将文件夹复制到:
/externalSD/.../themes/thor/myfirstfile.jpg
/externalSD/.../themes/thor/mysecondfile.m4a
/externalSD/.../themes/thor/mythirdfile.json
/externalSD/.../themes/batman/myfirstfile.jpg
/externalSD/.../themes/batman/mysecondfile.m4a
/externalSD/.../themes/batman/mythirdfile.json
我无法将文件夹放入 R.assets,因为包含这些资产的项目是一个库,我需要从应用程序项目中访问文件。
将所有文件简单地放入 raw/assets/drawable/etc 目录也不是一个选项,因为主题本质上是用于搜索 SD 卡上的目录的模板,其想法是可以下载更多主题。
目前我的解决方案是将文件夹打包成 zip 文件,如下所示:
raw/thor.zip
raw/batman.zip
使用以下方式访问它们:
InputStream fileStream = context.getResources().openRawResource(rawResource);
然后在应用程序第一次运行时将其解压缩到 SD 卡上 - 但速度非常慢。 (希望)简单地复制一个文件夹而不是解压缩一个文件夹会更快。
我的问题是如何从 R.raw 资源中复制整个文件夹?
【问题讨论】:
-
Tou 不能在 raw 中创建子文件夹。好吧,您可以在 ide 中创建它们,但是您的应用程序无法访问其中的所有文件。如果您想要子文件夹,请使用资产目录。
标签: android android-resources android-assets