Java 类android.os.StatFs 实例源码

项目:RootPGPExplorer    文件:RootToolsInternalMethods.java   
/**
 * Checks if there is enough Space on SDCard
 *
 * @param updateSize size to Check (long)
 * @return <code>true</code> if the Update will fit on SDCard, <code>false</code> if not enough
 * space on SDCard. Will also return <code>false</code>, if the SDCard is not mounted as
 * read/write
 */
@SuppressWarnings("deprecation")
public boolean hasEnoughSpaceOnSdCard(long updateSize) {
    RootTools.log("Checking SDcard size and that it is mounted as RW");
    String status = Environment.getExternalStorageState();
    if (!status.equals(Environment.MEDIA_MOUNTED)) {
        return false;
    }
    File path = Environment.getExternalStorageDirectory();
    StatFs stat = new StatFs(path.getPath());
    long blockSize = 0;
    long availableBlocks = 0;
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
        blockSize = stat.getBlockSize();
        availableBlocks = stat.getAvailableBlocks();
    } else {
        blockSize = stat.getBlockSizeLong();
        availableBlocks = stat.getAvailableBlocksLong();
    }
    return (updateSize < availableBlocks * blockSize);
}
项目:GitHub    文件:Utils.java   
@Deprecated
public static boolean checkRomSpaceEnough(long limitSize) {
    long allSize;
    long availableSize = 0;
    try {
        File data = Environment.getDataDirectory();
        StatFs sf = new StatFs(data.getPath());
        availableSize = (long) sf.getAvailableBlocks() * (long) sf.getBlockSize();
        allSize = (long) sf.getBlockCount() * (long) sf.getBlockSize();
    } catch (Exception e) {
        allSize = 0;
    }

    if (allSize != 0 && availableSize > limitSize) {
        return true;
    }
    return false;
}
项目:GitHub    文件:Utils.java   
@TargetApi(JELLY_BEAN_MR2)
static long calculateDiskCacheSize(File dir) {
  long size = MIN_DISK_CACHE_SIZE;

  try {
    StatFs statFs = new StatFs(dir.getAbsolutePath());
    //noinspection deprecation
    long blockCount =
        SDK_INT < JELLY_BEAN_MR2 ? (long) statFs.getBlockCount() : statFs.getBlockCountLong();
    //noinspection deprecation
    long blockSize =
        SDK_INT < JELLY_BEAN_MR2 ? (long) statFs.getBlockSize() : statFs.getBlockSizeLong();
    long available = blockCount * blockSize;
    // Target 2% of the total space.
    size = available / 50;
  } catch (IllegalArgumentException ignored) {
  }

  // Bound inside min/max size for disk cache.
  return Math.max(Math.min(size, MAX_DISK_CACHE_SIZE), MIN_DISK_CACHE_SIZE);
}
项目:GitHub    文件:StatFsHelper.java   
/**
 * Gets the information about the free storage space, including reserved blocks,
 * either internal or external depends on the given input
 * @param storageType Internal or external storage type
 * @return available space in bytes, -1 if no information is available
 */
@SuppressLint("DeprecatedMethod")
public long getFreeStorageSpace(StorageType storageType) {
  ensureInitialized();

  maybeUpdateStats();

  StatFs statFS = storageType == StorageType.INTERNAL ? mInternalStatFs : mExternalStatFs;
  if (statFS != null) {
    long blockSize, availableBlocks;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
      blockSize = statFS.getBlockSizeLong();
      availableBlocks = statFS.getFreeBlocksLong();
    } else {
      blockSize = statFS.getBlockSize();
      availableBlocks = statFS.getFreeBlocks();
    }
    return blockSize * availableBlocks;
  }
  return -1;
}
项目:TPlayer    文件:IOUtils.java   
private static long getStatFsSize(StatFs statFs, String blockSizeMethod, String availableBlocksMethod) {
    try {
        Method getBlockSizeMethod = statFs.getClass().getMethod(blockSizeMethod);
        getBlockSizeMethod.setAccessible(true);

        Method getAvailableBlocksMethod = statFs.getClass().getMethod(availableBlocksMethod);
        getAvailableBlocksMethod.setAccessible(true);

        long blockSize = (Long) getBlockSizeMethod.invoke(statFs);
        long availableBlocks = (Long) getAvailableBlocksMethod.invoke(statFs);
        return blockSize * availableBlocks;
    } catch (Throwable e) {
        OkLogger.printStackTrace(e);
    }
    return 0;
}
项目:GitHub    文件:StatFsHelper.java   
/**
 * Gets the information about the available storage space
 * either internal or external depends on the give input
 * @param storageType Internal or external storage type
 * @return available space in bytes, 0 if no information is available
 */
@SuppressLint("DeprecatedMethod")
public long getAvailableStorageSpace(StorageType storageType) {
  ensureInitialized();

  maybeUpdateStats();

  StatFs statFS = storageType == StorageType.INTERNAL ? mInternalStatFs : mExternalStatFs;
  if (statFS != null) {
    long blockSize, availableBlocks;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
      blockSize = statFS.getBlockSizeLong();
      availableBlocks = statFS.getAvailableBlocksLong();
    } else {
      blockSize = statFS.getBlockSize();
      availableBlocks = statFS.getAvailableBlocks();
    }
    return blockSize * availableBlocks;
  }
  return 0;
}
项目:Android-UtilCode    文件:SDCardUtils.java   
/**
 * 获取SD卡信息
 *
 * @return SDCardInfo
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getSDCardInfo() {
    if (!isSDCardEnable()) return null;
    SDCardInfo sd = new SDCardInfo();
    sd.isExist = true;
    StatFs sf = new StatFs(Environment.getExternalStorageDirectory().getPath());
    sd.totalBlocks = sf.getBlockCountLong();
    sd.blockByteSize = sf.getBlockSizeLong();
    sd.availableBlocks = sf.getAvailableBlocksLong();
    sd.availableBytes = sf.getAvailableBytes();
    sd.freeBlocks = sf.getFreeBlocksLong();
    sd.freeBytes = sf.getFreeBytes();
    sd.totalBytes = sf.getTotalBytes();
    return sd.toString();
}
项目:AndroidFFmpegCompress    文件:MainActivity.java   
/**
 * 获得可用存储空间
 *
 * @return 可用存储空间(单位b)
 */
public long getFreeSpace() {
    File path = Environment.getExternalStorageDirectory();
    StatFs stat = new StatFs(path.getPath());
    long blockSize;//区块的大小
    long totalBlocks;//区块总数
    long availableBlocks;//可用区块的数量
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        blockSize = stat.getBlockSizeLong();
        totalBlocks = stat.getBlockCountLong();
        availableBlocks = stat.getAvailableBlocksLong();
    } else {
        blockSize = stat.getBlockSize();
        totalBlocks = stat.getBlockCount();
        availableBlocks = stat.getAvailableBlocks();
    }
    Log.e(TAG, "totalSpace:" + blockSize * totalBlocks + "...availableSpace:" + blockSize * availableBlocks);
    return blockSize * availableBlocks;
}
项目:EvolvingNetLib    文件:SDCardUtil.java   
/**
 * 获取SD卡可用剩余空间大小(还剩下多少空间)
 *
 * @return
 */
public static long getSDCardAvailableSize() {

    long availableBlockCount;
    long blockSize;

    if (isSDCardMounted()) {
        String dir = getSDCardBaseDir();
        //StatFs是从C语言引过来的
        StatFs statFs = new StatFs(dir);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            availableBlockCount = statFs.getAvailableBlocksLong();//有多少块
            blockSize = statFs.getBlockSizeLong();//每块有多大
        } else {
            availableBlockCount = statFs.getAvailableBlocks();//有多少块
            blockSize = statFs.getBlockSize();//每块有多大
        }

        return availableBlockCount * blockSize / 1024 / 1024; //总大小
    }
    return 0;
}
项目:EvolvingNetLib    文件:CCIOUtils.java   
private static long getStatFsSize(StatFs statFs, String blockSizeMethod, String availableBlocksMethod) {
    try {
        Method getBlockSizeMethod = statFs.getClass().getMethod(blockSizeMethod);
        getBlockSizeMethod.setAccessible(true);

        Method getAvailableBlocksMethod = statFs.getClass().getMethod(availableBlocksMethod);
        getAvailableBlocksMethod.setAccessible(true);

        long blockSize = (Long) getBlockSizeMethod.invoke(statFs);
        long availableBlocks = (Long) getAvailableBlocksMethod.invoke(statFs);
        return blockSize * availableBlocks;
    } catch (Throwable e) {
        e.printStackTrace();
    }
    return 0;
}
项目:ComponentProjectDemo    文件:CommonUtils.java   
/**
 * 判断存储空间大小是否满足条件
 *
 * @param sizeByte
 * @return
 */
public static boolean isAvaiableSpace(float sizeByte) {
    boolean ishasSpace = false;
    if (Environment.getExternalStorageState().equals(
            Environment.MEDIA_MOUNTED)) {
        String sdcard = Environment.getExternalStorageDirectory().getPath();
        StatFs statFs = new StatFs(sdcard);
        long blockSize = statFs.getBlockSize();
        long blocks = statFs.getAvailableBlocks();
        float availableSpare = blocks * blockSize;
        if (availableSpare > (sizeByte + 1024 * 1024)) {
            ishasSpace = true;
        }
    }
    return ishasSpace;
}
项目:Android-DownloadManager    文件:StorageUtils.java   
/**
 * Return number of available bytes on the filesystem backing the given
 * {@link FileDescriptor}, minus any {@link #RESERVED_BYTES} buffer.
 */
private static long getAvailableBytes(FileDescriptor fd) throws IOException {
    try {
        //TODO only Sdcard check??
        String sdcardDir = Environment.getExternalStorageDirectory().getPath();
        StatFs stat = new StatFs(sdcardDir);
        long bytesAvailable = 0;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
            bytesAvailable = (long)stat.getBlockSizeLong() * (long)stat.getAvailableBlocksLong();
        } else {
            bytesAvailable = (long)stat.getBlockSize() * (long)stat.getAvailableBlocks();
        }
        return bytesAvailable - RESERVED_BYTES;
    } catch (Exception e) {
        throw new  IOException("getAvailableBytes IOException");
    }
}
项目:boohee_v5.6    文件:Utils.java   
@Deprecated
public static boolean checkRomSpaceEnough(long limitSize) {
    long allSize;
    long availableSize = 0;
    try {
        StatFs sf = new StatFs(Environment.getDataDirectory().getPath());
        availableSize = ((long) sf.getAvailableBlocks()) * ((long) sf.getBlockSize());
        allSize = ((long) sf.getBlockCount()) * ((long) sf.getBlockSize());
    } catch (Exception e) {
        allSize = 0;
    }
    if (allSize == 0 || availableSize <= limitSize) {
        return false;
    }
    return true;
}
项目:AC2RD    文件:MonitoringManager.java   
private long getStorageAvailableSize(Context context)
  {
try
{
    statFS = new StatFs(storagePath);

    long storageAvailableBlocks = (long)statFS.getBlockSize() * (long)statFS.getAvailableBlocks();

    statFS = null;

    return storageAvailableBlocks;
}
catch (Exception e)
      {
    Log.w("MonitoringManager", "getStorageAvailableSize : " + context.getString(R.string.log_monitoring_manager_error_get_storage_available_size) + " : " + e);
    databaseManager.insertLog(context, "" + context.getString(R.string.log_monitoring_manager_error_get_storage_available_size), new Date().getTime(), 2, false);

    return 0;
      }
  }
项目:BaseCore    文件:SDCardUtils.java   
/**
 * 获取SD卡信息
 *
 * @return SDCardInfo
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getSDCardInfo() {
    SDCardInfo sd = new SDCardInfo();
    if (!isSDCardEnable()) return "sdcard unable!";
    sd.isExist = true;
    StatFs sf = new StatFs(Environment.getExternalStorageDirectory().getPath());
    sd.totalBlocks = sf.getBlockCountLong();
    sd.blockByteSize = sf.getBlockSizeLong();
    sd.availableBlocks = sf.getAvailableBlocksLong();
    sd.availableBytes = sf.getAvailableBytes();
    sd.freeBlocks = sf.getFreeBlocksLong();
    sd.freeBytes = sf.getFreeBytes();
    sd.totalBytes = sf.getTotalBytes();
    return sd.toString();
}
项目:AC2RD    文件:MonitoringManager.java   
private long getStorageTotalSize(Context context)
  {
try
{
    statFS = new StatFs(storagePath);

    long storageTotalBlock = (long)statFS.getBlockSize() * (long)statFS.getBlockCount();

    statFS = null;

    return storageTotalBlock;
}
catch (Exception e)
      {
    Log.w("MonitoringManager", "getStorageTotalSize : " + context.getString(R.string.log_monitoring_manager_error_get_storage_total_size) + " : " + e);
    databaseManager.insertLog(context, "" + context.getString(R.string.log_monitoring_manager_error_get_storage_total_size), new Date().getTime(), 2, false);

    return 0;
      }
  }
项目:boohee_v5.6    文件:k.java   
public static String t(Context context) {
    try {
        if (a(context, "android.permission.WRITE_EXTERNAL_STORAGE")) {
            String externalStorageState = Environment.getExternalStorageState();
            if (externalStorageState == null || !externalStorageState.equals("mounted")) {
                return null;
            }
            externalStorageState = Environment.getExternalStorageDirectory().getPath();
            if (externalStorageState == null) {
                return null;
            }
            StatFs statFs = new StatFs(externalStorageState);
            long blockCount = (((long) statFs.getBlockCount()) * ((long) statFs.getBlockSize
                    ())) / 1000000;
            return String.valueOf((((long) statFs.getBlockSize()) * ((long) statFs
                    .getAvailableBlocks())) / 1000000) + "/" + String.valueOf(blockCount);
        }
        f.warn("can not get the permission of android.permission.WRITE_EXTERNAL_STORAGE");
        return null;
    } catch (Object th) {
        f.e(th);
        return null;
    }
}
项目:MyTvLauncher    文件:Tools.java   
/**
 * 得到sd卡剩余大小
 *
 * @return
 */
public static long getSDAvailableSize() {
    File path = Environment.getExternalStorageDirectory();
    StatFs stat = new StatFs(path.getPath());
    long blockSize = 0;
    long availableBlocks = 0;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        blockSize = stat.getBlockSizeLong();
        availableBlocks = stat.getAvailableBlocksLong();
    } else {
        blockSize = stat.getBlockSize();
        availableBlocks = stat.getAvailableBlocks();
    }

    return blockSize * availableBlocks / 1024;
}
项目:HeadlineNews    文件:SDCardUtils.java   
/**
 * 获取SD卡信息
 *
 * @return SDCardInfo
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getSDCardInfo() {
    if (!isSDCardEnable()) return null;
    SDCardInfo sd = new SDCardInfo();
    sd.isExist = true;
    StatFs sf = new StatFs(Environment.getExternalStorageDirectory().getPath());
    sd.totalBlocks = sf.getBlockCountLong();
    sd.blockByteSize = sf.getBlockSizeLong();
    sd.availableBlocks = sf.getAvailableBlocksLong();
    sd.availableBytes = sf.getAvailableBytes();
    sd.freeBlocks = sf.getFreeBlocksLong();
    sd.freeBytes = sf.getFreeBytes();
    sd.totalBytes = sf.getTotalBytes();
    return sd.toString();
}
项目:HotFixDemo    文件:TinkerUtils.java   
/**
 * 判断当前ROM空间是否足够大
 */
@Deprecated
public static boolean checkRomSpaceEnough(long limitSize) {
    long allSize;
    long availableSize = 0;
    try {
        File data = Environment.getDataDirectory();
        StatFs sf = new StatFs(data.getPath());
        availableSize = (long) sf.getAvailableBlocks() * (long) sf.getBlockSize();
        allSize = (long) sf.getBlockCount() * (long) sf.getBlockSize();
    } catch (Exception e) {
        allSize = 0;
    }

    if (allSize != 0 && availableSize > limitSize) {
        return true;
    }
    return false;
}
项目:HeroVideo-master    文件:CommonUtil.java   
/**
 * 获取SDka可用空间
 *
 * @return
 */
private static long getSDcardAvailableSize()
{

    if (checkSdCard())
    {
        File path = Environment.getExternalStorageDirectory();
        StatFs mStatFs = new StatFs(path.getPath());
        long blockSizeLong = mStatFs.getBlockSizeLong();
        long availableBlocksLong = mStatFs.getAvailableBlocksLong();
        return blockSizeLong * availableBlocksLong;
    } else
        return 0;
}
项目:Liteframework    文件:SdCardUtil.java   
/**
 * Get SD card info detail.
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static SDCardInfo getSDCardInfo() {
    SDCardInfo sd = new SDCardInfo();
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        sd.isExist = true;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            File sdcardDir = Environment.getExternalStorageDirectory();
            StatFs sf = new StatFs(sdcardDir.getPath());

            sd.totalBlocks = sf.getBlockCountLong();
            sd.blockByteSize = sf.getBlockSizeLong();

            sd.availableBlocks = sf.getAvailableBlocksLong();
            sd.availableBytes = sf.getAvailableBytes();

            sd.freeBlocks = sf.getFreeBlocksLong();
            sd.freeBytes = sf.getFreeBytes();

            sd.totalBytes = sf.getTotalBytes();
        }
    }
    if (Log.isPrint) {
        Log.i(TAG, sd.toString());
    }
    return sd;
}
项目:boohee_v5.6    文件:DeviceInfo.java   
public String getTotalInternalMemorySize() {
    long j = 0;
    try {
        StatFs statFs = new StatFs(Environment.getDataDirectory().getPath());
        j = ((long) statFs.getBlockCount()) * ((long) statFs.getBlockSize());
    } catch (Exception e) {
    }
    return String.valueOf(j);
}
项目:Android-Practice    文件:ImageCache.java   
/**
 * Check how much usable space is available at a given path.
 *
 * @param path The path to check
 * @return The space available in bytes
 */
@TargetApi(VERSION_CODES.GINGERBREAD)
public static long getUsableSpace(File path) {
    if (Utils.hasGingerbread()) {
        return path.getUsableSpace();
    }
    final StatFs stats = new StatFs(path.getPath());
    return (long) stats.getBlockSize() * (long) stats.getAvailableBlocks();
}
项目:updateUtils    文件:UpdateDownloader.java   
public static long getAvailableStorage() {
    try {
        StatFs stat = new StatFs(Environment.getExternalStorageDirectory().toString());
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            return stat.getAvailableBlocksLong() * stat.getBlockSizeLong();
        } else {
            return (long) stat.getAvailableBlocks() * (long) stat.getBlockSize();
        }
    } catch (RuntimeException ex) {
        return 0;
    }
}
项目:GitHub    文件:SDCardUtils.java   
/**
 * 获取空闲的空间大小
 * @return  空间大小
 */
public static long getFreeSpaceBytes() {
    long freeSpaceBytes;
    final StatFs statFs = new StatFs(getSDPath());
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        freeSpaceBytes = statFs.getAvailableBytes();
    } else {
        //noinspection deprecation
        freeSpaceBytes = statFs.getAvailableBlocks() * (long) statFs.getBlockSize();
    }

    return freeSpaceBytes;
}
项目:GitHub    文件:SDCardUtils.java   
/**
 * 获取空闲的空间大小
 * @param path  文件路径
 * @return  空间大小
 */
public static long getFreeSpaceBytes(final String path) {
    long freeSpaceBytes;
    final StatFs statFs = new StatFs(path);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        freeSpaceBytes = statFs.getAvailableBytes();
    } else {
        //noinspection deprecation
        freeSpaceBytes = statFs.getAvailableBlocks() * (long) statFs.getBlockSize();
    }

    return freeSpaceBytes;
}
项目:GitHub    文件:UpdateDownloader.java   
public static long getAvailableStorage() {
    try {
        StatFs stat = new StatFs(Environment.getExternalStorageDirectory().toString());
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            return stat.getAvailableBlocksLong() * stat.getBlockSizeLong();
        } else {
            return (long) stat.getAvailableBlocks() * (long) stat.getBlockSize();
        }
    } catch (RuntimeException ex) {
        return 0;
    }
}
项目:RLibrary    文件:RCrashHandler.java   
/**
 * 获取手机内部剩余存储空间
 *
 * @return
 */
public static long getAvailableInternalMemorySize() {
    File path = Environment.getDataDirectory();
    StatFs stat = new StatFs(path.getPath());
    long blockSize = stat.getBlockSize();
    long availableBlocks = stat.getAvailableBlocks();
    return availableBlocks * blockSize;
}
项目:GitHub    文件:FileDownloadUtils.java   
public static long getFreeSpaceBytes(final String path) {
    long freeSpaceBytes;
    final StatFs statFs = new StatFs(path);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        freeSpaceBytes = statFs.getAvailableBytes();
    } else {
        //noinspection deprecation
        freeSpaceBytes = statFs.getAvailableBlocks() * (long) statFs.getBlockSize();
    }

    return freeSpaceBytes;
}
项目:FileDownloader-master    文件:FileDownloadUtils.java   
public static long getFreeSpaceBytes(final String path) {
    long freeSpaceBytes;
    final StatFs statFs = new StatFs(path);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        freeSpaceBytes = statFs.getAvailableBytes();
    } else {
        //noinspection deprecation
        freeSpaceBytes = statFs.getAvailableBlocks() * (long) statFs.getBlockSize();
    }

    return freeSpaceBytes;
}
项目:GitHub    文件:StatFsHelperTest.java   
@Before
public void setUp() {
  PowerMockito.mockStatic(Environment.class);
  PowerMockito.mockStatic(StatFsHelper.class);
  PowerMockito.mockStatic(SystemClock.class);
  mMockFileInternal = mock(File.class);
  mMockFileExternal = mock(File.class);
  mMockStatFsInternal = mock(StatFs.class);
  mMockStatFsExternal = mock(StatFs.class);
  PowerMockito.when(SystemClock.uptimeMillis()).thenReturn(System.currentTimeMillis());
}
项目:SmartChart    文件:OkHttp3Downloader.java   
private static long calculateDiskCacheSize(File dir) {
    long size = MIN_DISK_CACHE_SIZE;

    try {
        StatFs statFs = new StatFs(dir.getAbsolutePath());
        long available = (long) statFs.getBlockCount() * statFs.getBlockSize();
        // Target 2% of the total space.
        size = available / 50;
    } catch (IllegalArgumentException ignored) {
    }

    // Bound inside min/max size for disk cache.
    return Math.max(Math.min(size, MAX_DISK_CACHE_SIZE), MIN_DISK_CACHE_SIZE);
}
项目:LoRaWAN-Smart-Parking    文件:DirectoryManager.java   
/**
 * Given a path return the number of free KB
 * 
 * @param path to the file system
 * @return free space in KB
 */
private static long freeSpaceCalculation(String path) {
    StatFs stat = new StatFs(path);
    long blockSize = stat.getBlockSize();
    long availableBlocks = stat.getAvailableBlocks();
    return availableBlocks * blockSize / 1024;
}
项目:kognitivo    文件:Utility.java   
@SuppressWarnings("deprecation")
private static void refreshAvailableExternalStorage() {
    try {
        if (externalStorageExists()) {
            File path = Environment.getExternalStorageDirectory();
            StatFs stat = new StatFs(path.getPath());
            availableExternalStorageGB =
                    (long)stat.getAvailableBlocks() * (long)stat.getBlockSize();
        }
        availableExternalStorageGB =
                Utility.convertBytesToGB(availableExternalStorageGB);
    } catch (Exception e) {
        // Swallow
    }
}
项目:kognitivo    文件:Utility.java   
@SuppressWarnings("deprecation")
private static void refreshTotalExternalStorage() {
    try {
        if (externalStorageExists()) {
            File path = Environment.getExternalStorageDirectory();
            StatFs stat = new StatFs(path.getPath());
            totalExternalStorageGB = (long)stat.getBlockCount() * (long)stat.getBlockSize();
        }
        totalExternalStorageGB = Utility.convertBytesToGB(totalExternalStorageGB);
    } catch (Exception e) {
        // Swallow
    }
}
项目:AndroidNetwork    文件:BaseUtils.java   
/**
 * 获取SD卡剩余空间的大小
 * 
 * @return long SD卡剩余空间的大小(单位:byte)
 */
public static long getSDSize()
{
    final String str = Environment.getExternalStorageDirectory().getPath();
    final StatFs localStatFs = new StatFs(str);
    final long blockSize = localStatFs.getBlockSize();
    return localStatFs.getAvailableBlocks() * blockSize;
}
项目:letv    文件:DeviceUtils.java   
public static long getExternalStorageSize(Context context) {
    long j = 0;
    try {
        String[] paths = (String[]) StorageManager.class.getMethod("getVolumePaths", new Class[0]).invoke((StorageManager) context.getSystemService("storage"), new Object[0]);
        if (paths != null && paths.length >= 2) {
            StatFs statFs = new StatFs(paths[1]);
            j = ((((long) statFs.getBlockCount()) * ((long) statFs.getBlockSize())) / 1024) / 1024;
        }
    } catch (Exception e) {
        LogTool.e(TAG, "getExternalStorageSize. " + e.toString());
    }
    return j;
}
项目:MyAnimeViewer    文件:StorageUtils.java   
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;
        }
    }
项目:atlas    文件:FileUtils.java   
public static long getUsableSpace(File path) {
    if (path == null) {
        return -1;
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
        return path.getUsableSpace()/1024/1024;
    } else {
        if (!path.exists()) {
            return 0;
        } else {
            final StatFs stats = new StatFs(path.getPath());
            return (long) stats.getBlockSize() * (long) stats.getAvailableBlocks()/1024/1024;
        }
    }
}