读写SD卡上的文件:
首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置:
在AndroidManifest.xml中加入访问SDCard的权限如下:
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
接着我们在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法
Environment 是一个提供访问环境变量的类。
getDataDirectory()
|
获取到Androi中的data数据目录
|
getDownloadCacheDirectory()
|
获取 Android 下载/缓存内容目录。
|
getExternalStorageDirectory()
|
获取到外部存储的目录 一般指SDcard
|
getExternalStorageState()
|
获取外部设置的当前状态 一般指SDcard,
android系统中对于外部设置的状态,我们比较常用的应该是
MEDIA_BAD_REMOVAL -->表明SDCard 被卸载前己被移除
MEDIA_CHECKING -->表明对象正在磁盘检查。
MEDIA_MOUNTED -->表明对象是否存在并具有读/写权限
MEDIA_MOUNTED_READ_ONLY -->表明对象权限为只读
MEDIA_NOFS --> 表明对象为空白或正在使用不受支持的文件系统。
MEDIA_REMOVED --> 如果不存在 SDCard 返回
MEDIA_SHARED--> 如果 SDCard 未安装,并通过 USB 大容量存储共享 返回
MEDIA_UNMOUNTABLE--> 返回 SDCard 不可被安装如果 SDCard 是存在但不可以被安装
MEDIA_UNMOUNTED--> 返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装
|
getRootDirectory()
|
获取到Android Root路径 即
根目录
|
isExternalStorageEmulated()
|
返回Boolean值判断外部设置是否有效
|
isExternalStorageRemovable()
|
返回Boolean值,判断外部设置是否可以移除
|
getExternalStoragePublicDirectory(String type)
|
取一个高端的公用的外部存储器目录来摆放某些类型的文件
|
SD卡读写的步奏
step 1:读写前先判断SD卡是否存在。且可以读写。
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
|
step 2:获取SD卡外部目录以及SD卡路径
Environment.getExternalStorageDirectory().getCanonicalPath();
Environment.getExternalStorageDirectory().getAbsolutePath();
|
step 3:对文件进行读写操作
与上面的文件读写操作一样
step 4:在
AndroidManifest中添加SD卡权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|