几种存储目录

不说废话,直接上代码,一下是我写的一个汇集获取Android下几种不同目录的一个工具类。
`
/**
* 注意Android四种存储目录的区别
*
*/

public class FileHelper {

 private static String path="";
/**
 * 获取应该内部存储目录  对应文件目录\data\date\application包名\files
 * 该目录属于应用程序的私有目录  其他应用程序时无法访问的  无需申请权限
 */
 public static String getFilePath(Context context){
      File file=context.getFilesDir();
      path=file.getAbsolutePath();
      return path;
 }

/**
 * 获取应用程序内部存储目录  对应文件目录\data\data\application包名\cache
 * 该目录属于应用程序的私有目录 无需权限
 *
 */
 public static String getCachePath(Context context){
     File cacheFile=context.getCacheDir();
     path=cacheFile.getAbsolutePath();
     return path;
 }

/**
 * 获取sd卡外部存储文件目录   该目录下的文件数据是属于外部存储卡存储当前应用的文件目录  该目录需要申请权限
 * 对应的目录  /sdCarg/Androida/data/applicaion包名/files
 * 对于大部分手机现在智能机  外部存储sdCard都是内嵌在手机中不可插拔  所以对于这类手机来说  应用一断被卸载  对应sdCard中该目录的文件将全部被清除
 * 对于外部存储是物理存储  外部插拔式sdCard来说   应用被卸载数据任然不会被删除
 * @param context
 * @return
 */
 public static  String getExtralFilePath(Context context){
     File extralFile=context.getExternalFilesDir(null);
     path=extralFile.getAbsolutePath();
     return path;
 }

/***
 * 获取sd卡外部存储文件目录
 * 该目录下的文件数据是属于外部存储卡存储当前应用的文件目录  该目录需要申请权限
 * 对应的目录  /sdCarg/Androida/data/applicaion包名/files
 * 对于大部分手机现在智能机  外部存储sdCard都是内嵌在手机中不可插拔  所以对于这类手机来说  应用一断被卸载  对应sdCard中该目录的文件将全部被清除
 * 对于外部存储是物理存储  外部插拔式sdCard来说   应用被卸载数据任然不会被删除
 */
 public static String getExtralCachePath(Context context){
     File externalCacheDir=context.getExternalCacheDir();
     path=externalCacheDir.getAbsolutePath();
     return path;
 }

/**
 * 通用方法用于保存应用文件数据
 */
public static String getCommenFilePath(Context context){
    if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())||!Environment.isExternalStorageRemovable()){
        path=getExtralFilePath(context);
    }else {
        path=getFilePath(context);
    }
    return path;
}

/**
 * 通用方法用于保存应用缓存数据
 */
public static String getCommenCachePath(Context context){
     if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())||!Environment.isExternalStorageRemovable()){
         path=getExtralCachePath(context);
     }else {
         path=getCachePath(context);
     }
     return path;
}

/**
 * 获取sd卡根目录方法
 */
public static String getSDCardPath(){
    if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())||!Environment.isExternalStorageRemovable()){
        File file=Environment.getExternalStorageDirectory();
        path=file.getAbsolutePath();
    }else {
        path="";
    }
    return path;
}

}
`
接下来就是征对几种目录打印日志:

     String cachePath=FileHelper.getCachePath(this);
     String filePath=FileHelper.getFilePath(this);
     String extralFilePath=FileHelper.getExtralFilePath(this);
     String extralCachePath=FileHelper.getExtralCachePath(this);
     String sdCardPath=FileHelper.getSDCardPath();

     Log.v("log1","cachePath:"+cachePath);
     Log.v("log1","filePath:"+filePath);
     Log.v("log1","extralFilePath:"+extralFilePath);
     Log.v("log1","extralCachePath:"+extralCachePath);
     Log.v("log1","sdCardPath:"+sdCardPath);

以下是对应日志输出结果:
这里写图片描述

如果上图看不清楚可以直接看下面的文本结果:
log1:cachePath:/data/data/com.example.administrator.myjavadeamo/cache
log1:filePath:/data/data/com.example.administrator.myjavadeamo/files
log1:extralFilePath:/storage/emulated/0/Android/data/com.example.administrator.myjavadeamo/files
log1:extralCachePath:/storage/emulated/0/Android/data/com.example.administrator.myjavadeamo/cache
log1:sdCardPath:/storage/emulated/0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值