安卓存储路径

  * 从Apk本地Assets复制文件到指定文件夹
     
      * @param context
      * @param filepath
      * @param fileName
      * @return
      */
     public  static  boolean  copyFileFromAssets(Context context, String filepath,
             String fileName) {
         boolean  result =  false ;
         try  {
             // 检查 SQLite 数据库文件是否存在
             if  (( new  File(filepath + fileName)).exists() ==  false ) {
                 // 如 SQLite 数据库文件不存在,再检查一下 database 目录是否存在
                 File f =  new  File(filepath);
                 // 如 database 目录不存在,新建该目录
                 if  (!f.exists()) {
                     f.mkdir();
                 }
                 try  {
                     // 得到 assets 目录下我们实现准备好的 SQLite 数据库作为输入流
                     InputStream is = context.getAssets().open(fileName);
                     // 输出流
                     OutputStream os =  new  FileOutputStream(filepath + fileName);
                     // 文件写入
                     byte [] buffer =  new  byte [ 1024 ];
                     int  length;
                     while  ((length = is.read(buffer)) >  0 ) {
                         os.write(buffer,  0 , length);
                     }
                     // 关闭文件流
                     os.flush();
                     os.close();
                     is.close();
                     result =  true ;
                 catch  (Exception e) {
                     e.printStackTrace();
                 }
             }
         catch  (Exception e) {
             // TODO: handle exception
         }
         return  result;
     }





-------------------------------------------------

getCacheDir()方法用于获取/data/data/<application package>/cache目录

getFilesDir()方法用于获取/data/data/<application package>/files目录



应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。

大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。

这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。

如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?

通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据

通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。

而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项

如果要保存下载的内容,就不要放在以上目录下


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值