| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
gbd8
10年前发布

SD卡相关的Android辅助类

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