Back to project page JiangHomeStyle_Android_Phone.
The source code is released under:
Apache License
If you think the Android project JiangHomeStyle_Android_Phone listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.cidesign.jianghomestylephone.tools; /* w w w . j ava 2 s.co m*/ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; import android.os.StatFs; import android.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; public class StorageUtils { private static final String TAG = StorageUtils.class.getSimpleName(); private static final String SDCARD_ROOT = Environment.getExternalStorageDirectory().getAbsolutePath() + "/"; public static final String APP_ROOT = SDCARD_ROOT + "JiangHomeStyle/"; public static final String FILE_ROOT = SDCARD_ROOT + "JiangHomeStyle/articles/"; public static final String FILE_TEMP_ROOT = SDCARD_ROOT + "JiangHomeStyle/temp/"; private static final long LOW_STORAGE_THRESHOLD = 1024 * 1024 * 10; public static boolean isSdCardWrittenable() { if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { return true; } return false; } public static long getAvailableStorage() { String storageDirectory = null; storageDirectory = Environment.getExternalStorageDirectory().toString(); try { StatFs stat = new StatFs(storageDirectory); long avaliableSize = ((long) stat.getAvailableBlocks() * (long) stat.getBlockSize()); return avaliableSize; } catch (RuntimeException ex) { return 0; } } public static boolean checkAvailableStorage() { if (getAvailableStorage() < LOW_STORAGE_THRESHOLD) { return false; } return true; } public static boolean isSDCardPresent() { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); } public static void mkdir() throws IOException { File file = new File(APP_ROOT); if (!file.exists() || !file.isDirectory()) file.mkdir(); file = new File(FILE_ROOT); if (!file.exists() || !file.isDirectory()) file.mkdir(); file = new File(FILE_TEMP_ROOT); if (!file.exists() || !file.isDirectory()) file.mkdir(); } /** * ???????????????????????????????? * * @param sPath * ???????????? * @return ?????????? true??????? false?? */ public static boolean DeleteFolder(String sPath) { boolean flag = false; File file = new File(sPath); // ??????????????? if (!file.exists()) { // ????????? false return flag; } else { // ?????????? if (file.isFile()) { // ??????????????????? return deleteFile(sPath); } else { // ??????????????? return deleteDirectory(sPath); } } } /** * ?????????? * * @param sPath * ??????????????? * @return ?????????????????true???????false */ public static boolean deleteFile(String sPath) { boolean flag = false; File file = new File(sPath); // ???????????????????? if (file.isFile() && file.exists()) { file.delete(); flag = true; } return flag; } public static boolean deleteDirectory(String sPath) { // ???sPath??????????????????????????????? if (!sPath.endsWith(File.separator)) { sPath = sPath + File.separator; } File dirFile = new File(sPath); // ???dir????????????????????????????????? if (!dirFile.exists() || !dirFile.isDirectory()) { return false; } boolean flag = true; // ?????????????????(???????) File[] files = dirFile.listFiles(); for (int i = 0; i < files.length; i++) { // ???????? if (files[i].isFile()) { flag = deleteFile(files[i].getAbsolutePath()); if (!flag) break; } // ?????? else { flag = deleteDirectory(files[i].getAbsolutePath()); if (!flag) break; } } if (!flag) return false; // ??????? if (dirFile.delete()) { return true; } else { return false; } } public static Bitmap getLoacalBitmap(String url) { try { FileInputStream fis = new FileInputStream(url); return BitmapFactory.decodeStream(fis); } catch (FileNotFoundException e) { e.printStackTrace(); return null; } } public static String size(long size) { if (size / (1024 * 1024) > 0) { float tmpSize = (float) (size) / (float) (1024 * 1024); DecimalFormat df = new DecimalFormat("#.##"); return "" + df.format(tmpSize) + "MB"; } else if (size / 1024 > 0) { return "" + (size / (1024)) + "KB"; } else return "" + size + "B"; } public static boolean delete(File path) { boolean result = true; if (path.exists()) { if (path.isDirectory()) { for (File child : path.listFiles()) { result &= delete(child); } result &= path.delete(); // Delete empty directory. } if (path.isFile()) { result &= path.delete(); } if (!result) { Log.e(null, "Delete failed;"); } return result; } else { Log.e(null, "File does not exist."); return false; } } }