• 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();
    	}
    
    
    }
    


  • 相关阅读:
    Makefile的常用技术总结
    NPOI 插入行[转]
    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 [转]
    Using Google Public DNS[Google公共DNS服务器]
    软件开发知识[TDD]
    MySQL函数之STRCMP()
    MySQL知识[INSERT语法]
    软件开发知识[ORM]
    软件开发知识[ADO.NET Entity Framework]
    mysql workbench 在模板与数据库间同步
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6849042.html
Copyright © 2020-2023  润新知