Android 判断SD卡是否存在及容量查询

Android 判断SD卡是否存在及容量查询的简单方法如下:
首先要在AndroidManifest.xml中增加SD卡访问权限

  1. <!-- 在SDCard中创建与删除文件权限 -->  
  2. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
  3. <!-- 往SDCard写入数据权限 -->  
  4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   

SD卡是否存在

  1. private boolean ExistSDCard() {  
  2.   if (android.os.Environment.getExternalStorageState().equals(  
  3.     android.os.Environment.MEDIA_MOUNTED)) {  
  4.    return true;  
  5.   } else  
  6.    return false;  
  7.  }  

SD卡剩余空间

  1. public long getSDFreeSize(){  
  2.      //取得SD卡文件路径  
  3.      File path = Environment.getExternalStorageDirectory();   
  4.      StatFs sf = new StatFs(path.getPath());   
  5.      //获取单个数据块的大小(Byte)  
  6.      long blockSize = sf.getBlockSize();   
  7.      //空闲的数据块的数量  
  8.      long freeBlocks = sf.getAvailableBlocks();  
  9.      //返回SD卡空闲大小  
  10.      //return freeBlocks * blockSize;  //单位Byte  
  11.      //return (freeBlocks * blockSize)/1024;   //单位KB  
  12.      return (freeBlocks * blockSize)/1024 /1024; //单位MB  
  13.    }      

SD卡总容量

    1. public long getSDAllSize(){  
    2.      //取得SD卡文件路径  
    3.      File path = Environment.getExternalStorageDirectory();   
    4.      StatFs sf = new StatFs(path.getPath());   
    5.      //获取单个数据块的大小(Byte)  
    6.      long blockSize = sf.getBlockSize();   
    7.      //获取所有数据块数  
    8.      long allBlocks = sf.getBlockCount();  
    9.      //返回SD卡大小  
    10.      //return allBlocks * blockSize; //单位Byte  
    11.      //return (allBlocks * blockSize)/1024; //单位KB  
    12.      return (allBlocks * blockSize)/1024/1024; //单位MB  
    13.    }     
posted @   brave-sailor  阅读(350)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2015-11-07 - 通过 UIBezierPath 做一个中空的扫描器
2015-11-07 swift:打造你自己的折线图
2015-11-07 Swift 自定义炫酷下拉刷新效果
2015-11-07 IOS SWIFT基本画图教程
2013-11-07 Java中的String和StringBuffer
点击右上角即可分享
微信分享提示