Android 获取存储信息

Android 获取存储

getRootDirectory   /data
getExternalStorageDirectory()   /storage/emulated/0
getDataDirectory()  /system

注意:

long l1 = localStatFs.getBlockSize();

long l2 = localStatFs.getBlockCount();

否则越界

package com.mz.realparam.utils;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import android.app.ActivityManager;
import android.content.Context;
import android.os.Environment;
import android.os.StatFs;
import android.text.format.Formatter;

public class MemUtil {
	  public static long getDataDir()
	   {
	     long l1 = -1L;
	     try
	     {
	       StatFs localStatFs = new StatFs(Environment.getDataDirectory().getPath());
	       long l2 = localStatFs.getBlockSize();
	       int i = localStatFs.getBlockCount();
	       l1 = l2 * i;
	       return l1;
	     }
	     catch (Throwable localThrowable)
	     {
	       localThrowable.printStackTrace();
	     }
	     return l1;
	   }
	    public static long getDataDirAvail()
	   {
	     long l1 = -1L;
	     try
	     {
	       StatFs localStatFs = new StatFs(Environment.getDataDirectory().getPath());
	       long l2 = localStatFs.getBlockSize();
	       int i = localStatFs.getAvailableBlocks();
	       l1 = l2 * i;
	       return l1;
	     }
	     catch (Throwable localThrowable)
	     {
	       localThrowable.printStackTrace();
	     }
	     return l1;
	   }
	//--------------------------------------------------------
	
	
	public static String getExternalStorage(Context paramContext) {
		StatFs localStatFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
		return Formatter.formatFileSize(paramContext,
				localStatFs.getBlockSize() * localStatFs.getBlockCount())+"  | "
		+(localStatFs.getBlockSize() * localStatFs.getBlockCount())+" | "+ localStatFs.getBlockCount()+" | "+localStatFs.getBlockSize();
	}

	 public static String getExternalStorageAvail(Context paramContext)
	  {
	    if (Environment.getExternalStorageState().equals("mounted"));
	    for (int i = 1; i == 0; i = 0)
	      return "0";
	    try
	    {
	      StatFs localStatFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
	      int j = localStatFs.getBlockSize();
	      int k = localStatFs.getAvailableBlocks();
	      long a= localStatFs.getBlockSize();
	      long b = localStatFs.getAvailableBlocks();
	      return Formatter.formatFileSize(
					paramContext.getApplicationContext(), j * k)+" | "+(j*k)+"  "+Formatter.formatFileSize(
							paramContext.getApplicationContext(), a * b)+" | "+(a*b);
//	      return k * j;
	    }
	    catch (Throwable localThrowable)
	    {
	        localThrowable.printStackTrace();
	    }
	    return "0";
	  }
	 public static String getSDCardSize(Context paramContext) {
			if ("mounted".equals(Environment.getExternalStorageState())) {
		StatFs localStatFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
		long l1 = localStatFs.getBlockSize();
		long l2 = localStatFs.getBlockCount();
		return Formatter.formatFileSize(paramContext, l2 * l1)+" | "+(l2*l1)+"  | "+l2+" | "+l1;
			}
			return "0";
		}
	 //-------------------------------------------------
	//SystemSize
	  public static String getSystemSizeRootDir(Context paramContext)
	  {
	    StatFs localStatFs = new StatFs(Environment.getRootDirectory().getPath());
	    long l1 = localStatFs.getBlockSize();
	    long l2 = localStatFs.getBlockCount();
	    return Formatter.formatFileSize(paramContext.getApplicationContext(), l2 * l1)+" | "+(l2 * l1);
	  }
	  public static String getSystemSizeRootDirAvail(Context paramContext)
	  {
	    StatFs localStatFs = new StatFs(Environment.getRootDirectory().getPath());
	    long l1 = localStatFs.getBlockSize();
	    long l2 = localStatFs.getAvailableBlocks();
	    return Formatter.formatFileSize(paramContext.getApplicationContext(), l2 * l1)+" | "+(l2 * l1);
	  }
	  
	  //----------------------------------
	  
	 
	  //----------------------------------
	    public static String getMeminfo()
	    {
	      String str = null;
	      try
	      {
	        BufferedReader localBufferedReader = new BufferedReader(new FileReader("/proc/meminfo"), 8192);
	        str = localBufferedReader.readLine().split("\\s+")[1];
	        localBufferedReader.close();
	        int i = 0;
	        if (str != null)
	          i = (int)Math.ceil(new Float(Float.valueOf(str).floatValue() / 1024.0F).doubleValue());
	        return i + "MB";
	      }
	      catch (Exception localException)
	      {
	        while (true)
	          localException.printStackTrace();
	      }
	    }
	    public static long getMeminfo2(Context paramContext)
	    {
	      try
	      {
	        BufferedReader localBufferedReader = new BufferedReader(new FileReader("/proc/meminfo"), 8192);
	        long l = 1024L * Long.valueOf(localBufferedReader.readLine().split("\\s+")[1]).longValue();
	        localBufferedReader.close();
	        return l / 1024L / 1024L;
	      }
	      catch (IOException localIOException)
	      {
	      }
	      return 0L;
	    }
	    
	    //-----------------------------------
	  
	    public static long getavailMem(Context paramContext)
	    {
	      ActivityManager localActivityManager = (ActivityManager)paramContext.getSystemService("activity");
	      ActivityManager.MemoryInfo localMemoryInfo = new ActivityManager.MemoryInfo();
	      localActivityManager.getMemoryInfo(localMemoryInfo);
	      return localMemoryInfo.availMem/ 1024L / 1024L;
	    }
	  
	  
	  
	  
	  
	  
	  
	  
	  
	  
	  
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值