zoukankan      html  css  js  c++  java
  • SD卡操作相关的工具SDCardUtils

    SD卡操作相关的工具

    package com.flyou.utils;
    
    import java.io.File;
    
    import android.os.Environment;
    import android.os.StatFs;
    
    /**
     * SD卡相关的辅助类
     * 
     * 
     * 
     */
    public class SDCardUtils
    {
    	private SDCardUtils()
    	{
    		/* cannot be instantiated */
    		throw new UnsupportedOperationException("cannot be instantiated");
    	}
    
    	/**
    	 * 推断SDCard是否可用
    	 * 
    	 * @return
    	 */
    	public static boolean isSDCardEnable()
    	{
    		return Environment.getExternalStorageState().equals(
    				Environment.MEDIA_MOUNTED);
    
    	}
    
    	/**
    	 * 获取SD卡路径
    	 * 
    	 * @return
    	 */
    	public static String getSDCardPath()
    	{
    		return Environment.getExternalStorageDirectory().getAbsolutePath()
    				+ File.separator;
    	}
    
    	/**
    	 * 获取SD卡的剩余容量 单位byte
    	 * 
    	 * @return
    	 */
    	public static long getSDCardAllSize()
    	{
    		if (isSDCardEnable())
    		{
    			StatFs stat = new StatFs(getSDCardPath());
    			// 获取空暇的数据块的数量
    			long availableBlocks = (long) stat.getAvailableBlocks() - 4;
    			// 获取单个数据块的大小(byte)
    			long freeBlocks = stat.getAvailableBlocks();
    			return freeBlocks * availableBlocks;
    		}
    		return 0;
    	}
    
    	/**
    	 * 获取指定路径所在空间的剩余可用容量字节数。单位byte
    	 * 
    	 * @param filePath
    	 * @return 容量字节 SDCard可用空间,内部存储可用空间
    	 */
    	public static long getFreeBytes(String filePath)
    	{
    		// 假设是sd卡的下的路径,则获取sd卡可用容量
    		if (filePath.startsWith(getSDCardPath()))
    		{
    			filePath = getSDCardPath();
    		} else
    		{// 假设是内部存储的路径,则获取内存存储的可用容量
    			filePath = Environment.getDataDirectory().getAbsolutePath();
    		}
    		StatFs stat = new StatFs(filePath);
    		long availableBlocks = (long) stat.getAvailableBlocks() - 4;
    		return stat.getBlockSize() * availableBlocks;
    	}
    
    	/**
    	 * 获取系统存储路径
    	 * 
    	 * @return
    	 */
    	public static String getRootDirectoryPath()
    	{
    		return Environment.getRootDirectory().getAbsolutePath();
    	}
    
    
    }
    


  • 相关阅读:
    总结C# 调用c++ 开源代码使用问题
    nodejs v14使用await async
    一个简单的js文件,在ts中使用的方法
    ts项目+webpack+juuery 插件的引入
    js 立即执行的多种写法
    在webgl2上使用fabric做标记
    comobox 绑定datatable ,无法获取选择值问题
    axios 请求拦截并在 token 过期后自动续订后重调当前请求
    javascript hook 一个函数(不定参数个数)
    java Date 大坑
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6849042.html
Copyright © 2011-2022 走看看