Android-SDCardUtil-工具类

摘要:
SDCardUtil-工具类,是专门处理,外置存储Sdcard的操作packagecommon.library.utils;importandroid.annotation.SuppressLint;importandroid.content.Context;importandroid.os.Environment;importandroid.os.StatFs;importjava.io.Fil

SDCardUtil-工具类,是专门处理,外置存储Sdcard的操作

packagecommon.library.utils;

importandroid.annotation.SuppressLint;
importandroid.content.Context;
importandroid.os.Environment;
importandroid.os.StatFs;

importjava.io.File;

/*** @Author Liudeli
 * @Describe:SD卡工具类,包含SD卡状态、路径、容量大小
 */
public classSDCardUtil {

    privateSDCardUtil(){}

    /*** 判断SD卡是否可用
     * @return* ture:可用;false:不可用
     */
    public static booleanisSDCardEnable(){
        returnEnvironment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
    }

    /*** 获取SD卡路径
     * @return* SD卡存在返回正常路径;SD卡不存在返回""
     */
    public staticString getSDCradPath(){
        if(isSDCardEnable()) {
            return Environment.getExternalStorageDirectory().getAbsolutePath() +File.separator;
        } else{
            return "";
        }
    }

    /*** 获取SD卡路径文件
     * @return* SD卡存在返回正常路径;SD卡不存在返回null
     */
    public staticFile getSDCardFile(){
        if(isSDCardEnable()){
            returnEnvironment.getExternalStorageDirectory();
        }else{
            return null;
        }
    }

    /*** 获取SD卡DownloadCache路径
     * @return* SD卡存在返回正常路径;SD卡不存在返回""
     */
    public staticString getSDCardDownloadCachePath(){
        if(isSDCardEnable()){
            return Environment.getDownloadCacheDirectory().getAbsolutePath() +File.separator;
        }else{
            return "";
        }
    }

    /*** 获取SD卡DownloadCache路径文件
     * @return* SD卡存在返回正常路径;SD卡不存在返回null
     */
    public staticFile getSDCardDownloadCacheFile(){
        if(isSDCardEnable()){
            returnEnvironment.getDownloadCacheDirectory();
        }else{
            return null;
        }
    }

    /*** 获取系统存储路径
     * @return* SD卡存在返回正常路径;SD卡不存在返回""
     */
    public staticString getSDCardRootPath(){
        if(isSDCardEnable()){
            return Environment.getRootDirectory().getAbsolutePath() +File.separator;
        }else{
            return "";
        }
    }

    /*** 获取系统存储路径文件
     * @return* SD卡存在返回正常路径;SD卡不存在返回null
     */
    public staticFile getSDCardRootFile(){
        if(isSDCardEnable()){
            returnEnvironment.getRootDirectory();
        }else{
            return null;
        }
    }

    /*** 获取应用程序的/data/data目录
     * @paramcontext
     * @return
     */
    public staticString getDataFilePath(Context context){
        return context.getFilesDir().getAbsolutePath() +File.separator;
    }

    /*** /data/data/PackageName/cache的路径
     * @paramcontext
     * @return
     */
    public staticString getDataCachePath(Context context){
        return context.getCacheDir().getAbsolutePath() +File.separator;
    }

    /*** 获取SD卡大小
     * @return* SD卡存在返回大小;SD卡不存在返回-1
     */@SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    public static longgetSDCardSize(){
        if(isSDCardEnable()) {
            StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath() +File.separator);
            if (android.os.Build.VERSION.SDK_INT < 18) {
                int blockSize =statFs.getBlockSize();
                int blockCount =statFs.getBlockCount();
                return blockSize *blockCount;
            } else{
                long blockSize =statFs.getBlockSizeLong();
                long blockCount =statFs.getBlockCountLong();
                return blockSize *blockCount;
            }
        }
        return -1;
    }

    /*** 获取SD卡可用大小
     * @return* SD卡存在返回大小;SD卡不存在返回-1
     */@SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    public static longgetSDCardAvailableSize(){
        if(isSDCardEnable()) {
            StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath() +File.separator);
            if (android.os.Build.VERSION.SDK_INT < 18) {
                int blockSize =statFs.getBlockSize();
                int blockCount =statFs.getAvailableBlocks();
                return blockSize *blockCount;
            } else{
                long blockSize =statFs.getBlockSizeLong();
                long blockCount =statFs.getAvailableBlocksLong();
                return blockSize *blockCount;
            }
        }
        return -1;
    }

    /*** 获得手机内存总大小
     * @return
     */@SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    public longgetRomTotalSize() {
        File path =Environment.getDataDirectory();
        StatFs statFs = newStatFs(path.getPath());
        if (android.os.Build.VERSION.SDK_INT < 18) {
            int blockSize =statFs.getBlockSize();
            int blockCount =statFs.getBlockCount();
            return blockSize *blockCount;
        } else{
            long blockSize =statFs.getBlockSizeLong();
            long blockCount =statFs.getBlockCountLong();
            return blockSize *blockCount;
        }
    }

    /*** 获得手机可用内存
     * @return
     */@SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    public longgetRomAvailableSize() {
        File path =Environment.getDataDirectory();
        StatFs statFs = newStatFs(path.getPath());
        if (android.os.Build.VERSION.SDK_INT < 18) {
            int blockSize =statFs.getBlockSize();
            int blockCount =statFs.getAvailableBlocks();
            return blockSize *blockCount;
        } else{
            long blockSize =statFs.getBlockSizeLong();
            long blockCount =statFs.getAvailableBlocksLong();
            return blockSize *blockCount;
        }
    }
}

免责声明:文章转载自《Android-SDCardUtil-工具类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Sqlserver查询表结构信息-字段说明、类型、长度等信息jquery获取上传进度和取消上传操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

link2sd教程

上一次做小辣椒升级攻略的时候用到了app2sd+这个功能,相当繁琐,而且需要rom支持这个功能,很遗憾,我的酷派8010暂时没有rom支持app2sd+。 那我就试试另外个软件link2sd。相当简单,步骤如下: 1.首先还是要对存储卡进行分区,还是用add软件,详情参考小辣椒那个帖子。建议分区为ext3格式(且每个分区都是主分区),因为当使用磁盘模式连接至...

重学STM32---(八)----SDIO

1.  SDIO(SD/SDIO MMC卡主机模块)在AHB外设总线和多媒体卡(MMC)、SD存储卡、SDIO卡和CE-ATA设备间提供了操作接口。(SDIO没有SPI兼容的通信模式 ) 1.1.什么是MMC卡 MMC:MMC就是MultiMediaCard的缩写,即多媒体卡。它是一种非易失性存储器件,体积小巧(24mm*32mm*1.4mm),容量大,耗...

天猫魔盒TMB100C短接刷机教程

使用第三方Recovery 首先,需要先制作TF卡启动盘 a.解压SDcardMaker.rar,双击运行其中的SDcardMaker.exe(操作系统推荐使用windows XP,windows vista以上系统请以管理员身份运行。不支持windows 8) b.选择sd卡对应的盘符,bin文件选择同目录下的uboot.bin;勾选“是否重新分...

FATFS

 (一),什么是文件管理系统 答:数据在PC上是以文件的形式储存在磁盘中的。这些数据的形式一般为ASCII码或二进制形式。简单点说就是:管理磁盘上的文件的方法的代码! 如:我们写到SD卡上面的数据管理一下,更科学的方法来管理 http://elm-chan.org/fsw/ff/00index_e.html,官网介绍 Resources以下是源代码...

Android程序函数 将assets文件夹下的文件复制到手机的sd卡中(包括子文件夹)

最近在做个功能是将asset文件夹下的所有文件(包括子文件)全部拷贝出来到指定目录下。所用的方法无非是用AssetManager。但是这里有个问题是也要讲子文件夹和子文件都要拷贝出来。到网上Google了下,也到baidu搜索了下,发现了很多类似问题。但好像都有问题。显然只能做到将asset直接目录下的文件拷贝出来,但子文件夹拷贝不出来,而且,碰到文件夹,...

androidstudio安卓获取外部sd卡存储

private static String getStoragePath(Context mContext, boolean is_removale) { StorageManager mStorageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVIC...