安卓系统中对SD卡的操作

安卓系统中,对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/InputStreamReader/WriterBufferedReader/BufferedWriter等类实现文件读写了,可参见《通过流实现文件读写的方法》。

通过流文件实现文件读写


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值