zoukankan      html  css  js  c++  java
  • Android 获取Android手机中SD卡存储信息 获取剩余空间

    本文转自:http://www.oschina.net/question/54100_33506

    SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件。因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android开发中,我们如何能获取SD卡的内存容量呢?

    首先,要获取SD卡上面的信息,必须先对SD卡有访问的权限,因此第一件事就是需要添加访问扩展设备的权限。

    <uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE">
    </uses-permission>

    其次,需要判断手机上面SD卡是否插好,如果有SD卡的情况下,我们才可以访问得到并获取到它的相关信息,当然以下这个语句需要用if做判断。

    Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

    取得sdcard文件路径

    File path = Environment.getExternalStorageDirectory(); 
    StatFs statfs = new StatFs(path.getPath());

    获取block的SIZE

    long blocSize = statfs.getBlockSize();

    获取BLOCK数量

    long totalBlocks = statfs.getBlockCount();

    空闲的Block的数量

    long availaBlock = statfs.getAvailableBlocks();

    计算总空间大小和空闲的空间大小

    存储空间大小跟空闲的存储空间大小就被计算出来了。

    public long getAvailaleSize(){
    
    File path = Environment.getExternalStorageDirectory(); //取得sdcard文件路径
    
    StatFs stat = new StatFs(path.getPath()); 
    
     
    
    long blockSize = stat.getBlockSize(); 
    
     
    
    long availableBlocks = stat.getAvailableBlocks();
    
     
    
    return availableBlocks * blockSize; 
    
    //(availableBlocks * blockSize)/1024      KIB 单位
    
    //(availableBlocks * blockSize)/1024 /1024  MIB单位
    
     
    
    }
    
     
    
     
    
    public long getAllSize(){
    
    File path = Environment.getExternalStorageDirectory(); 
    
    StatFs stat = new StatFs(path.getPath()); 
    
     
    
    long blockSize = stat.getBlockSize(); 
    
     
    
    long availableBlocks = stat.getBlockCount();
    
     
    
    return availableBlocks * blockSize; 
    
    }
  • 相关阅读:
    智能移动机器人背后蕴含的技术——激光雷达
    Kalman Filters
    Fiddler抓HttpClient的包
    VSCode开发WebApi EFCore的坑
    WPF之小米Logo超圆角的实现
    windows react打包发布
    jenkins in docker踩坑汇总
    Using ML.NET in Jupyter notebooks 在jupyter notebook中使用ML.NET ——No design time or full build available
    【Linux知识点】CentOS7 更换阿里云源
    【Golang 报错】exec gcc executable file not found in %PATH%
  • 原文地址:https://www.cnblogs.com/sishuiliuyun/p/3106068.html
Copyright © 2011-2022 走看看