获取手机外部存储卡的剩余空间

本文介绍了一个简单的Android应用程序功能,用于显示设备上SD卡的总容量和可用空间。通过使用Java代码,该应用能够读取SD卡的状态,并计算其总容量与剩余可用空间,最后将这些信息展示给用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private void showSize()
  {
    /* 将TextView及ProgressBar设定为空值及0 */
    myTextView.setText(""); myProgressBar.setProgress(0);
    /* 判断记忆卡是否插入 */
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
    {
      /* 取得SD CARD档案路径一般是/sdcard */
      File path = Environment.getExternalStorageDirectory();
      /* StatFs看文件系统空间使用状况 */
      StatFs statFs = new StatFs(path.getPath());
      /* Block的size */
      long blockSize = statFs.getBlockSize();
      /* 总Block数量 */
      long totalBlocks = statFs.getBlockCount();
      /* 已使用的Block数量 */
      long availableBlocks = statFs.getAvailableBlocks();
      String[] total = fileSize(totalBlocks * blockSize);
      String[] available = fileSize(availableBlocks * blockSize);
      /* getMax取得在main.xml里ProgressBar设定的最大值 */
      int ss = Integer.parseInt(available[0]) * myProgressBar.getMax() / Integer.parseInt(total[0]);
      myProgressBar.setProgress(ss);
      String text = "总共" + total[0] + total[1] + "\n"; text += "可用" + available[0] + available[1];
      myTextView.setText(text); }
    else if (Environment.getExternalStorageState().equals( Environment.MEDIA_REMOVED))
    {
      String text = "SD CARD已移除"; myTextView.setText(text);
      }
    }
  /* 回传为字符串数组[0]为大小[1]为单位KB或MB */
  private String[] fileSize(long size)
  {
    String str = "";
    if (size >= 1024)
    {
      str = "KB";
      size /= 1024;
      if (size >= 1024)
      {
        str = "MB";
        size /= 1024;
        }
      }
    DecimalFormat formatter = new DecimalFormat();
    /* 每3个数字用,分隔如:1,000 */
    formatter.setGroupingSize(3);
    String result[] = new String[2];
    result[0] = formatter.format(size);
    result[1] = str; return result;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值