22 如何管理文件

02 如何管理文件

内部存储和外部存储

  1. Internal Storage

    内部存储
    
  2. External Storage

    外部存储
    

获取存储权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//申请外部存储权限.

选择安装存储位置

android:installLocation:

存储位置说明

getFilesDir()//获取app的Internal目录/files.
getCacheDir()//获取app的Internal缓存目录/cache.
openFileOutput

如何判断是否可以存储

Environment.getExternalStorageState();//外部存储是否可用.
字段	含义
Environment.MEDIA_REMOVED	存储媒体被移除
Environment.MEDIA_UNMOUNTED	存储媒体没有挂载
Environment.MEDIA_CHECKING	正在检查存储媒体
Environment.MEDIA_NOFS	存储媒体是空白或是不支持的文件系统
Environment.MEDIA_MOUNTED	存储媒体已经挂载,并且挂载点可读/写
Environment.MEDIA_MOUNTED_READ_ONLY	存储媒体已经挂载,挂载点只读
Environment.MEDIA_SHARED	存储媒体正在通过USB共享
Environment.MEDIA_BAD_REMOVAL	在没有挂载前存储媒体已经被移除
Environment.MEDIA_UNMOUNTABLE	存储媒体无法挂载

标准目录路径

Environment.getExternalStoragePublicDirectory(String type) //获取标准目录
字段	含义
Environment.DIRECTORY_MUSIC	音乐存放
Environment.DIRECTORY_PODCASTS	系统广播
Environment.DIRECTORY_RINGTONES	系统铃声
Environment.DIRECTORY_ALARMS	系统提醒铃声
Environment.DIRECTORY_NOTIFICATIONS	系统通知铃声
Environment.DIRECTORY_PICTURES	图片存放
Environment.DIRECTORY_MOVIES	电影存放
Environment.DIRECTORY_DOWNLOADS	下载
Environment.DIRECTORY_DCIM	相机拍摄照片和视频

其他路径

getExternalStorageDirectory(),获得外部存储媒体目录(/storage/sdcard)
getDataDirectory(),获得data的目录(/data)
getDownloadCacheDirectory(),获得下载缓存目录(/cache)
getRootDirectory(),获得系统主目录(/system)

特殊文件夹

assets:不做任何处理的文件.
raw:不做任何处理的文件,会生成资源id,不可有子目录.
res:自动生成ID,不可有子目录.
  1. 获得Assets目录

    getResources().getAssets();//获得assets目录
    getAssets().list("path");//获得目录列表
    
  2. 图片转换为位图

    Bitmap BitmapFactory.decodeStream(imputStream);//把图片转换为位图.
    
  3. 读音频

    AssetFileDescriptor getAssets().openFd("Filename");//读音频,返回文件描述对象
    
  4. 读取Raw目录

    getResources().open[Raw|color|string|Dawable]Resource("Filename");//读取Raw目录
    

其他

重点:
android:sample/demo.
android:/sdk源码.
android:github.com/googlesamples
android:官网/Api.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值