安卓系统中对SD卡的操作
来源:互联网 发布:javascript 反编译 编辑:程序博客网 时间:2024/06/01 07:26
安卓系统中,对SD卡的操作主要包括判断SD卡是否存在、获取SD卡路径、获取SD卡存储信息以及对SD卡进行读写等。
1 判断SD卡是否存在
通过Environment类实现对SD卡信息的获取。Environment类的全称是android.os.Environment,通过该类可以访问系统的环境变量。
通过该类的getExternalStorageState()方法获取外部存储设备的当前状态,该方法返回的是String类型的值。如果SD卡存在,则getExternalStorageState()方法的返回值是Environment类的字段MEDIA_MOUNTED,该字段的值是字符串“mounted”。
String sdState = Environment.getExternalStorageState();if(sdState.equals(Environment.MEDIA_MOUNTED)){ Toast.makeText(this, "SD卡存在", Toast.LENGTH_SHORT).show();}else{ Toast.makeText(this, "SD卡不存在", Toast.LENGTH_SHORT).show();}在以上代码中,通过getExternalStorageState()方法获取SD卡的状态,并且对SD卡的状态进行判断。
2 获取SD卡路径
通过Environment类的getExternalStorageDirectory()方法获取SD卡的路径,该方法的返回值是File类型的对象,表示SD卡路径。
File sdCard = Environment.getExternalStorageDirectory();Toast.makeText(this, "SD卡绝对路径是"+sdCard.getAbsolutePath(), Toast.LENGTH_SHORT).show();以上代码中,通过getExternalStorageDirectory()方法获取到SD卡对应的File类对象,并通过File类的getAbsolutePath()方法获取到了SD卡的绝对路径。
3 获取SD卡的存储信息
通过StatFs类获取SD卡的存储信息。StatFs类的全称是android.os.StatFs,通过该类可以获取文件系统关于存储空间的所有信息。
3.1 创建StatFs类的对象
StatFs类的构造函数格式为
StatFs(String path);其中,path表示文件系统的绝对路径。
StatFs statFs = new StatFs(sdCard.getAbsolutePath());
3.2 获取存储信息
安卓系统的文件系统的空间大小用存储块(block)来表示。要获取SD卡的存储信息,则需要得到每个存储块的大小、可用存储块的数量和总存储块的数量。
通过StatFs类的getBlockCountLong()方法可以获取每个存储块的大小,单位是字节,即每个存储块占的字节数;getFreeBlocks()获取可用存储块的数量;getBlockCount()获取总存储块的数量。
long blockSize = statFs.getBlockSizeLong();long blockFree = statFs.getFreeBlocksLong();long block = statFs.getBlockCountLong();long sdFreeSize = blockSize*blockFree/1024/1024;long sdSize = blockSize*block/1024/1024;其中,statFs是在“3.1创建StatFs类的对象”中创建的StatFs类的对象;sdFreeSize和sdSize分别表示SD卡当前可用容量和总容量,单位是Mb。
4 读写SD卡文件
为了要读写SD卡文件,必须获取权限。通过在应用程序的清单文件(AndroidManifest.xml)中添加如下代码获取读写SD卡权限。
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEM"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
之后就可以通过OutputStream/InputStream、Reader/Writer、BufferedReader/BufferedWriter等类实现文件读写了,可参见《通过流实现文件读写的方法》。
通过流文件实现文件读写
- 安卓系统中对SD卡的操作
- android中对sd卡的操作
- 对SD卡的操作
- 安卓系统5.1格式化sd卡的方法
- Android 对SD卡的操作
- 安卓sd文件操作
- 安卓调用系统相机拍照,并把图片保存到SD卡中 进行 尺寸和质量的压缩
- Android对SD的操作
- 安卓开发操作SD卡相关Environment.getExternalStorageState介绍
- 在安卓4.2.2的系统上,具有系统权限的应用不能读写SD卡
- android--对SD卡进行相关文件的操作
- android 文件MD5加密 对SD卡的操作
- 对SD卡的读写操作-保存用户登录密码
- Android开发对SD卡的读写操作
- Android 对5.0+的外置SD卡删除操作
- 使用系统API对安卓数据库进行操作
- Android安卓模拟器中模拟SD卡
- 安卓程序: 使用FileOutputStream写入SD卡的文件中
- U盘模式无法引导进入pe系统
- 修改 ssh 远程连接 时间
- tomcat 安装在 linux
- tomcat 简单配置
- Linux 安装 jdk
- 安卓系统中对SD卡的操作
- 高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选 可不选)
- Keepalived 工作原理和配置说明
- 2018秋招面试题总结(软件开发类)
- Mysql 初始化 及 密码管理
- Nginx + php
- Nginx location配置 正则表达式
- Linux 用户管理命令
- 常用命令 find chmod