在需要存储的时候,路径的问题是初学者比较迷惑的,下面是对于getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的一些经验之谈,仅供参考思密达...

首选,需要明确的是 各自代表的路径具体位置在哪里

getCacheDir()对应的路径:  /data/data/应用包名/cache / 目录

getFilesDir()对应的路径:/data/data/应用包名/files/ 目录

getExternalFilesDir()对应的路径: SDCard/Android/data/应用包名/files/ 目录

getExternalCacheDir() 对应的路径: /sdcard/Android/data/应用包名/cache / 目录

这几个方法的最大不同点就是存储的位置不同以及该应用被卸载后是否会有残存数据遗留

使用下述路径:

getExternalFilesDir()对应的路径: SDCard/Android/data/应用包名/files/ 目录

getExternalCacheDir() 对应的路径: /sdcard/Android/data/应用包名/cache / 目录

getExternalStorageDirectory()对应的路径:sd卡根目录

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

所有一些你下载的东西,需要常驻sd卡的数据 就不能写入到这里面

还有一个我们经常见到的方法getExternalStorageDirectory(),那么它和上述的getExternalFilesDir()方法又有什么异同?

主要不同点在于存储在getExternalFilesDir()路径下的数据会随着应用的卸载而被卸载。

												

缓存和sd卡的路径(原)的更多相关文章

  1. Android开发获取多个存储空间的路径(内置SD卡以及外置SD卡)

    Android开发中经常会遇到多存储空间的问题,包括内置存储路径以及外置SD卡,而且有的时候会有多张外置SD卡,此时就需要获取不同的SD卡路径,然后根据需要来写入或者读出文件. 此处给出常用的SD卡工 ...

  2. Android 获取SD卡路径和推断SD卡是否存在

    android获取sd卡路径方法: 不建议直接写死android sd卡的路径. public String getSDPath(){ File sdDir = null; boolean sdCar ...

  3. Android中怎样获取SD卡路径

    很多时候我们需要将我们的数据或者apk保存到SD卡中,但是使用绝对路径可能会遇到错误,怎样解决这个问题呢?     可以通过以下方法获取SD卡的路径: Environment.getExternalS ...

  4. Android获取SD卡路径/内存的几种方法

    Android获取SD卡路径 本篇将会带领大家学习如何获取android路径的几种常见用法,但在我开始bb之前需要大家清楚android中内存和外存之间的区别,下面进行简短介绍:android中的内存 ...

  5. [android] 保存文件到SD卡

    /****************2016年5月4日 更新*****************************/ 知乎:为什么很多Android应用要把文件写到/sdcard目录下而不是写到/d ...

  6. 第36章 SDIO—SD卡读写测试

    第36章     SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...

  7. Android 常见SD卡操作

    目录 Android 常见SD卡操作 Android 常见SD卡操作 参考 https://blog.csdn.net/mad1989/article/details/37568667. [0.] E ...

  8. 第36章 SDIO—SD卡读写测试—零死角玩转STM32-F429系列

    第36章     SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...

  9. 9.Android-读写SD卡案例

    1.效果如下所示: 2.读写SD卡时,需要给APP添加读写外部存储设备权限,修改AndroidManifest.xml,添加: <uses-permission android:name=&qu ...

随机推荐

  1. asp.net c#过滤html代码,净化DIV SPAN等

    public static string GetSafeHtml(string val) { if (string.IsNullOrEmpty(val)) { return string.Empty; ...

  2. EF框架学习

    简称EF,ADO.NET Entity Framework是微软以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方案,是微软的一个ORM(面向对象的对象模型和关系型数据库的 ...

  3. IOS Core Animation Advanced Techniques的学习笔记(三)

    第四章:Visual Effects   Rounded Corners 例子4.1 cornerRadius 源码在这里下载:http://www.informit.com/title/978013 ...

  4. ubtuntu 下安装Erlang R17

    在Ubuntu 下 Erlang R17B 的安装的过程记录: 1 :如果你主机上没有安装jdk,那需先安装,安装过程如下:   #   sudo apt-get update (更新已安装的包)   ...

  5. 工作中用到的oracle字符串分割整理

    oracle部分: 定义类型(用于字符串分割): create or replace TYPE "STR_SPLIT" IS TABLE OF VARCHAR2 (4000); 字 ...

  6. 一个简单的游戏开发框架(六.行为Action)

    Action是cocos2d-x中比较重要的概念,有一个庞大的类族.参见老G写的cocos2d-x学习笔记09:动作2:持续动作 除了各种包装器,剩下的主要是一些持续动作: CCMoveTo:移动到. ...

  7. sja1000T can相关的知识

    开发环境:硬件环境arm9200 sja1000T,软件环境kernel version 2.6.21.驱动程序:字符驱动 can有两种基本的工作模式:basic can .pelican,pelic ...

  8. Android 传感器

    今天介绍一下Android的传感器,开发Android传感器的步骤: 1.调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorMan ...

  9. SQL表旋转

    在制作报表的时候,有时候会碰到基础资料是依照时间区间去一笔一笔记录的资料,但是使用者在看报表的时候想要将时间区间以横向的方式呈现不是直向的情况出现,又或者基础资料的表数据结构是横向的而使用者在看报表的 ...

  10. 更新centos curl

    centos curl 默认使用nss,而不是openssl 升级curl让curl支持openssl rpm -Uvh http://www.city-fan.org/ftp/contrib/yum ...