我们程序中 ,要将assets 下的 数据库,txt,图片 等资源文件 复制到 data 路径下面,当启动应用的时候,进行读取,和加载,这些 功能实现了,可是 有一个问题 :我们复制,读取 txt 文件是在 启动程序 的时候就进行的,所以我将应用打包 apk 后  安装在 机子上 ,点击 图标 ,应用就会 复制 读取。  可是出现了 每次 点击图标打开 应用的时候都会进行 重新复制读取,原本 我txt 文件中释放的一个标记,安装 apk 启动应用 将txt 复制到  data/data/...下,然后 到该路径下 读取标记,判断 标记 是否与 服务器上标记一样,不一样的话就下载 更新 ,更新过后  就将该 txt 文件标记做修改。 我程序里面 ,判断 如过   data/data/...下 有这个文件就不进行复制,可是 现在 却出现了 每次 点击 应用图标 启动程序都会复制一次 ,图片,数据库 ,资源也是一样的效果,着就相当于 每次启动应用 ,都相当于 安装 一次apk  了。怎样实现,安装apk 的时候 就将这些文件 复制到 指定的路径,以后就只在这写地方 进行  读取写入  操作,我已经做了判断,如果存在就不复制 。

解决方案 »

  1.   

    那就说明判断文件是否存在有问题,既然你加了判断,结果还会去复制的话,那就调试这段代码看到底能不能检测到文件存在。一般的应用是访问不到系统的data目录下的文件的,data的访问结果是会错误的。 你这个data目录是否就是系统的data目录?
      

  2.   

    是的!!之前 我们没有写复制,因为数据库  就生成 在 data/data/....目录下,但是打包 apk 后 却没有查到数据库,然后就先把 数据库 放到 assets 下面 启动应用的时候将他复制到  data/data/....目录下,这样就读取到了图片也是同样的操作,可是就出现了 我上面说的问题,每次启动应用的时候 就会进行复制, 想必是 应用关了以后  那个路径下面的 文件都跟着 没有了,不知道怎么回事,这样的话,跟每次启动 都是 跟重新安装 APK没区别,我们又不能往  SD卡 复制,因为机子上没有SD卡 ,经理 让用 自带空间。。所以也只能复制到 data 路径下了,有没有好的办法啊???