您的位置:首页 > 其它

SD卡上读写文件

2015-08-03 16:02 225 查看

读写SD卡上的文件:

如果存储大型文件,例如视频、音乐、文档等。存储到手机内存中是不明智的,一般我们会把这些大型文件存储在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"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: