Android Open Source - JiangHomeStyle_Android_Phone Storage Utils






From Project

Back to project page JiangHomeStyle_Android_Phone.

License

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.

Java Source Code

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




Java Source Code List

com.cidesign.jianghomestylephone.DetailActivity.java
com.cidesign.jianghomestylephone.JiangActivity.java
com.cidesign.jianghomestylephone.MainActivity.java
com.cidesign.jianghomestylephone.SplashActivity.java
com.cidesign.jianghomestylephone.adapter.CommunityViewpagerAdapter.java
com.cidesign.jianghomestylephone.adapter.HumanityViewpagerAdapter.java
com.cidesign.jianghomestylephone.adapter.LandscapeViewpagerAdapter.java
com.cidesign.jianghomestylephone.adapter.LayoutCaculateAdapter.java
com.cidesign.jianghomestylephone.adapter.StoryViewpagerAdapter.java
com.cidesign.jianghomestylephone.async.AsyncDownTask.java
com.cidesign.jianghomestylephone.async.AsyncInitCommunityData.java
com.cidesign.jianghomestylephone.async.AsyncInitData.java
com.cidesign.jianghomestylephone.async.AsyncInitHomeData.java
com.cidesign.jianghomestylephone.async.AsyncInitHumanityData.java
com.cidesign.jianghomestylephone.async.AsyncInitLandscapeData.java
com.cidesign.jianghomestylephone.async.AsyncInitStoryData.java
com.cidesign.jianghomestylephone.db.DatabaseConfigUtil.java
com.cidesign.jianghomestylephone.db.DatabaseHelper.java
com.cidesign.jianghomestylephone.entity.ArticleEntity.java
com.cidesign.jianghomestylephone.entity.FileListEntity.java
com.cidesign.jianghomestylephone.entity.LayoutEntity.java
com.cidesign.jianghomestylephone.entity.RelativeLayoutRulesEntity.java
com.cidesign.jianghomestylephone.http.ArticalOperation.java
com.cidesign.jianghomestylephone.http.DownLoadThread.java
com.cidesign.jianghomestylephone.service.DownloadService.java
com.cidesign.jianghomestylephone.tools.CategoryDataLoadingLogic.java
com.cidesign.jianghomestylephone.tools.FileOperationTools.java
com.cidesign.jianghomestylephone.tools.JiangCategory.java
com.cidesign.jianghomestylephone.tools.LayoutMarginSetting.java
com.cidesign.jianghomestylephone.tools.LoadingDataFromDB.java
com.cidesign.jianghomestylephone.tools.LoadingImageTools.java
com.cidesign.jianghomestylephone.tools.MD5Tools.java
com.cidesign.jianghomestylephone.tools.StorageUtils.java
com.cidesign.jianghomestylephone.tools.TimeTools.java
com.cidesign.jianghomestylephone.tools.WidgetCache.java
com.cidesign.jianghomestylephone.tools.XmlParseTools.java
com.cidesign.jianghomestylephone.version.NetworkTool.java
com.cidesign.jianghomestylephone.version.VersionConfig.java
com.cidesign.jianghomestylephone.version.VersionUpdate.java
com.cidesign.jianghomestylephone.widget.CommunityRelativeLayout.java
com.cidesign.jianghomestylephone.widget.CustomScrollView.java
com.cidesign.jianghomestylephone.widget.HScrollViewTouchLogic.java
com.cidesign.jianghomestylephone.widget.HumanityRelativeLayout.java
com.cidesign.jianghomestylephone.widget.LandscapeRelativeLayout.java
com.cidesign.jianghomestylephone.widget.PopMenu.java
com.cidesign.jianghomestylephone.widget.StoryRelativeLayout.java
org.apache.tools.zip.AbstractUnicodeExtraField.java
org.apache.tools.zip.AsiExtraField.java
org.apache.tools.zip.CentralDirectoryParsingZipExtraField.java
org.apache.tools.zip.ExtraFieldUtils.java
org.apache.tools.zip.FallbackZipEncoding.java
org.apache.tools.zip.GeneralPurposeBit.java
org.apache.tools.zip.JarMarker.java
org.apache.tools.zip.NioZipEncoding.java
org.apache.tools.zip.Simple8BitZipEncoding.java
org.apache.tools.zip.UnicodeCommentExtraField.java
org.apache.tools.zip.UnicodePathExtraField.java
org.apache.tools.zip.UnixStat.java
org.apache.tools.zip.UnparseableExtraFieldData.java
org.apache.tools.zip.UnrecognizedExtraField.java
org.apache.tools.zip.UnsupportedZipFeatureException.java
org.apache.tools.zip.Zip64ExtendedInformationExtraField.java
org.apache.tools.zip.Zip64Mode.java
org.apache.tools.zip.Zip64RequiredException.java
org.apache.tools.zip.ZipConstants.java
org.apache.tools.zip.ZipEightByteInteger.java
org.apache.tools.zip.ZipEncodingHelper.java
org.apache.tools.zip.ZipEncoding.java
org.apache.tools.zip.ZipEntry.java
org.apache.tools.zip.ZipExtraField.java
org.apache.tools.zip.ZipFile.java
org.apache.tools.zip.ZipLong.java
org.apache.tools.zip.ZipOutputStream.java
org.apache.tools.zip.ZipShort.java
org.apache.tools.zip.ZipUtil.java