• Android文件存储


    1.内部存储(Internal Storage)

    内部存储会随着应用被卸载而清除。
    通过getFilesDir()getCacheDir()可以得到内部文件路径和缓存路径。

    /data/data/${package}/files

    /data/data/${package}/cache

    2.外部存储(External Storage)

    外部存储需要权限,但是在4.4(API 19)以上,外部存储中的私有存储不需要权限
    所以如果你只需要用私有存储,可以这样写。

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="18" />
    

    1.私有存储(卸载应用时会被清除,跟内部存储有点像)

    主要方法如下。
    getXXXFilesDir(type)参数type可以为null

    	getExternalCacheDir();
    	getExternalFilesDir(null);
    	/*
    	*以下的getXXXDirs是同时获取内部存储卡和外部存储卡(SD卡)
    	*返回值为一个数组
    	*下面两个方法在API19以上才能用,所以需要用supportV4中的方法
    	*/
    	getExternalCacheDirs();
    	getExternalFilesDirs(null);
    	//supportV4中的方法
    	ContextCompat.getExternalFilesDirs(this, null);
    	ContextCompat.getExternalCacheDirs(this);
    

    通过测试得到的私有缓存路径和私有文件路径如下:

    /storage/emulated/0/Android/data/${package}/files

    /storage/emulated/0/Android/data/${package}/cache

    2.公有存储(卸载应用时不会被清除)

    下面的两个方法可以获取外部存储路径。
    其中getExternalStoragePublicDirectory(type)一般用来获取系统的目录,比如Download,DCIM,Music。
    参数type不能为null

    Environment.getExternalStorageDirectory();
    Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
    

    比如,以下代码在系统的Pictures目录下创建了一个MyPhoto文件夹

    Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_PICTURES), "MyPhoto");
    
  • 相关阅读:
    我的周记8——"因为相信,所以看见"
    我的周记7——“阳光开朗,自信表达一切”
    一些做设计挺不错的网站
    我的周记6——"不破楼兰誓不还“
    版本管理工具 Git
    我的周记5——"侵略如火,不动如山"
    SQLite-FMDatabase用法
    UIImage与Base64相互转换
    百度地图--地图标注的重复单击
    百度地图的单例模式
  • 原文地址:https://www.cnblogs.com/chace/p/4489691.html
Copyright © 2020-2023  润新知