2011-12-06 69 views
9

搜索1小时后,我找不到解决问题的方法。将文件复制到资产文件夹

我想从SD卡到资产的文件夹移动文件,并覆盖在资产文件夹中现有的文件(包括文件的SQLite数据库与数据只是一个小区别同名)

+8

你根本无法删除或从/资产的文件夹在运行时添加任何东西做任何事情。 – Mudassir

+1

我想从服务器下载sqlite数据库,然后复制到资产文件夹。 –

+0

我该如何克服这种情况? –

回答

11

其实,Android的.apk文件的行为是只读的,因此这个apk文件中的目录结构跟着一样,所以没有人可以在运行时编写这些文件或对其进行修改,这就是为什么在运行时你不能对/asset folder进行修改。你可以从中读取文件(复制手段有哪些资产可用于任何internal storage/sdcard文件,但不能把它写入反之亦然

它适用于所有这些建立的apk文件的目录。根据文档。

+0

对不起,同样的评论,但我需要解决方案:)我有数据库资产文件夹,也在服务器上,现在我想在服务器上更改数据库这样用户可以得到最新的更新。我可以这样做吗?用户如何获得该数据库? - 约翰史密斯7秒前 –

+0

你必须将该数据库写入内部存储或SD卡,(内部存储是最好的).. – user370305

+0

你能指导我如何做到这一点? –

4

Assets文件夹是不可写它只是可读性,以便你不能从sdcard复制到资产,是的,你可以从资产复制到sdcard

+1

没有downvote。但海报反之亦然。 – Mudassir

+0

我知道http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard但我的问题是不同的。 –

+1

+1的准确信息。 –

1

如果希望其他应用程序不能访问你的数据库,那么你可以做的是

  1. 从网站上下载的数据库。在app目录中创建一个临时数据库。
  2. getDatabasePath()这将为您创建虚拟数据库的路径,现在将其替换为您下载的虚拟数据库。

PS:用户具有root访问权限仍然能够访问它的应用程序,你不能在那种情况下

相关问题