android.os.StatFs#getBlockSizeLong ( )源码实例Demo

下面列出了android.os.StatFs#getBlockSizeLong ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: DevUtils   文件: SDCardUtils.java
/**
 * 获取对应路径的空间总大小
 * @param path 路径
 * @return 对应路径的空间总大小
 */
public static long getAllBlockSize(final String path) {
    try {
        // 获取路径的存储空间信息
        StatFs statFs = new StatFs(path);
        // 单个数据块的大小、数据块数量
        long blockSize, blockCount;
        // 版本兼容
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            blockSize = statFs.getBlockSizeLong();
            blockCount = statFs.getBlockCountLong();
        } else {
            blockSize = statFs.getBlockSize();
            blockCount = statFs.getBlockCount();
        }
        // 返回空间总大小
        return (blockCount * blockSize);
    } catch (Exception e) {
        LogPrintUtils.eTag(TAG, e, "getAllBlockSize");
    }
    return 0L;
}
 
源代码2 项目: DevUtils   文件: SDCardUtils.java
/**
 * 获取对应路径已使用空间大小
 * @param path 路径
 * @return 对应路径已使用空间大小
 */
public static long getUsedBlocks(final String path) {
    try {
        // 获取路径的存储空间信息
        StatFs statFs = new StatFs(path);
        // 单个数据块的大小、数据块数量、空闲的数据块数量
        long blockSize, blockCount, availableBlocks;
        // 版本兼容
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            blockSize = statFs.getBlockSizeLong();
            blockCount = statFs.getBlockCountLong();
            availableBlocks = statFs.getAvailableBlocksLong();
        } else {
            blockSize = statFs.getBlockSize();
            blockCount = statFs.getBlockCount();
            availableBlocks = statFs.getAvailableBlocks();
        }
        // 返回已使用空间大小
        return ((blockCount - availableBlocks) * blockSize);
    } catch (Exception e) {
        LogPrintUtils.eTag(TAG, e, "getUsedBlocks");
    }
    return 0L;
}
 
源代码3 项目: XKnife-Android   文件: SDCardUtils.java
/**
 * 获取SD卡信息
 *
 * @return SDCardInfo sd card info
 */
@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();
}
 
源代码4 项目: Ezalor   文件: StorageUtils.java
@SuppressLint("NewApi")
public static long getTotalSizeByPath(String path) {
    StatFs stat = new StatFs(path);
    long blockCount = 0;
    long blockSize = 0;
    long totalSize = 0;
    try {
        if (Build.VERSION.SDK_INT >= 19) {
            blockCount = stat.getBlockCountLong();
            blockSize = stat.getBlockSizeLong();
        } else {

            blockCount = stat.getBlockCount();
            blockSize = stat.getBlockSize();
        }

    } catch (Exception e) {
        LogUtils.logeForce(e);
    }

    totalSize = blockCount * blockSize;
    return totalSize;
}
 
@Override public String getFreeDiskPercentage() {
  File rootDirectory = Environment.getRootDirectory();
  StatFs fileSystemData = new StatFs(rootDirectory.getPath());

  long blockSize;
  long totalSize;
  long availableSize;
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
    blockSize = fileSystemData.getBlockSizeLong();
    totalSize = fileSystemData.getBlockCountLong() * blockSize;
    availableSize = fileSystemData.getAvailableBlocksLong() * blockSize;
  } else {
    blockSize = fileSystemData.getBlockSize();
    totalSize = fileSystemData.getBlockCount() * blockSize;
    availableSize = fileSystemData.getAvailableBlocks() * blockSize;
  }

  long freeDiskPercentage = availableSize * 100 / totalSize;
  return String.valueOf(freeDiskPercentage);
}
 
源代码6 项目: CleanExpert   文件: DiskStat.java
private void calculateExternalSpace() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        File sdcardDir = Environment.getExternalStorageDirectory();
        StatFs sf = new StatFs(sdcardDir.getPath());
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            mExternalBlockSize = sf.getBlockSizeLong();
            mExternalBlockCount = sf.getBlockCountLong();
            mExternalAvailableBlocks = sf.getAvailableBlocksLong();
        } else {
            mExternalBlockSize = sf.getBlockSize();
            mExternalBlockCount = sf.getBlockCount();
            mExternalAvailableBlocks = sf.getAvailableBlocks();
        }
    }
}
 
源代码7 项目: android-storage   文件: Storage.java
public long getUsedSpace(String dir, SizeUnit sizeUnit) {
    StatFs statFs = new StatFs(dir);
    long availableBlocks;
    long blockSize;
    long totalBlocks;
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
        availableBlocks = statFs.getAvailableBlocks();
        blockSize = statFs.getBlockSize();
        totalBlocks = statFs.getBlockCount();
    } else {
        availableBlocks = statFs.getAvailableBlocksLong();
        blockSize = statFs.getBlockSizeLong();
        totalBlocks = statFs.getBlockCountLong();
    }
    long usedBytes = totalBlocks * blockSize - availableBlocks * blockSize;
    return usedBytes / sizeUnit.inBytes();
}
 
@SuppressWarnings("ObsoleteSdkInt")
private long getBlockSizeLong(final @NotNull StatFs stat) {
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
    return stat.getBlockSizeLong();
  }
  return getBlockSizeDep(stat);
}
 
源代码9 项目: revolution-irc   文件: ChatLogStorageManager.java
private long getBlockSize() {
    if (mBlockSize == 0L) {
        File chatLogDir = mServerConfigManager.getChatLogDir();
        if (!chatLogDir.exists())
            return 0L;
        StatFs statFs = new StatFs(chatLogDir.getAbsolutePath());
        if (Build.VERSION.SDK_INT >= 18)
            mBlockSize = statFs.getBlockSizeLong();
        else
            mBlockSize = statFs.getBlockSize();
    }
    return mBlockSize;
}
 
源代码10 项目: easydeviceinfo   文件: EasyMemoryMod.java
/**
 * Gets available internal memory size.
 *
 * @return the available internal memory size
 */
public final long getAvailableInternalMemorySize() {
  File path = getDataDirectory();
  StatFs stat = new StatFs(path.getPath());
  long blockSize;
  long availableBlocks;
  if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR2) {
    blockSize = stat.getBlockSizeLong();
    availableBlocks = stat.getAvailableBlocksLong();
  } else {
    blockSize = stat.getBlockSize();
    availableBlocks = stat.getAvailableBlocks();
  }
  return availableBlocks * blockSize;
}
 
源代码11 项目: YCAudioPlayer   文件: SDUtils.java
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static long getAvailableSize() {
    if (isMounted()) {
        StatFs stat = new StatFs(getSDCardPath());
        // 获得可用的块的数量
        long count = stat.getAvailableBlocksLong();
        long size = stat.getBlockSizeLong();
        return count * size;
    }
    return 0;
}
 
源代码12 项目: AndroidAPS   文件: StorageConstraintPlugin.java
public static long getAvailableInternalMemorySize() {
    File path = Environment.getDataDirectory();
    StatFs stat = new StatFs(path.getPath());
    long blockSize = stat.getBlockSizeLong();
    long blocksAvailable = stat.getAvailableBlocksLong();
    int size = 1048576; // blocksize of 1 Mb
    return ((blocksAvailable * blockSize) / size);
}
 
源代码13 项目: android-common   文件: SdCardUtil.java
/**
 * Get available size of SD card.
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static long getAvailableSize(String path) {
    try {
        File base = new File(path);
        StatFs stat = new StatFs(base.getPath());
        return stat.getBlockSizeLong() * stat.getAvailableBlocksLong();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return 0;
}
 
源代码14 项目: DevUtils   文件: SDCardUtils.java
/**
 * 返回对应路径的空间大小信息
 * @param path 路径
 * @return long[], 0 = 总空间大小, 1 = 空闲空间大小, 2 = 已使用空间大小
 */
public static long[] getBlockSizeInfos(final String path) {
    try {
        // 获取路径的存储空间信息
        StatFs statFs = new StatFs(path);
        // 单个数据块的大小、数据块数量、空闲的数据块数量
        long blockSize, blockCount, availableBlocks;
        // 版本兼容
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            blockSize = statFs.getBlockSizeLong();
            blockCount = statFs.getBlockCountLong();
            availableBlocks = statFs.getAvailableBlocksLong();
        } else {
            blockSize = statFs.getBlockSize();
            blockCount = statFs.getBlockCount();
            availableBlocks = statFs.getAvailableBlocks();
        }
        // 计算空间信息
        long[] blocks = new long[3];
        blocks[0] = blockSize * blockCount;
        blocks[1] = blockSize * availableBlocks;
        blocks[2] = ((blockCount - availableBlocks) * blockSize);
        // 返回空间信息
        return blocks;
    } catch (Exception e) {
        LogPrintUtils.eTag(TAG, e, "getBlockSizeInfos");
    }
    return null;
}
 
源代码15 项目: 365browser   文件: ApiCompatibilityUtils.java
/**
 * See {@link android.os.StatFs#getBlockSize}.
 */
@SuppressWarnings("deprecation")
public static long getBlockSize(StatFs statFs) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        return statFs.getBlockSizeLong();
    } else {
        return statFs.getBlockSize();
    }
}
 
源代码16 项目: CleanExpert   文件: DiskStat.java
private void calculateInternalSpace() {
    File root = Environment.getRootDirectory();
    StatFs sf = new StatFs(root.getPath());
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        mInternalBlockSize = sf.getBlockSizeLong();
        mInternalBlockCount = sf.getBlockCountLong();
        mInternalAvailableBlocks = sf.getAvailableBlocksLong();
    } else {
        mInternalBlockSize = sf.getBlockSize();
        mInternalBlockCount = sf.getBlockCount();
        mInternalAvailableBlocks = sf.getAvailableBlocks();
    }
}
 
源代码17 项目: HeroVideo-master   文件: CommonUtil.java
/**
 * 获取手机内存存储可用空间
 *
 * @return
 */
public static long getPhoneAvailableSize()
{

    if (!checkSdCard())
    {
        File path = Environment.getDataDirectory();
        StatFs mStatFs = new StatFs(path.getPath());
        long blockSizeLong = mStatFs.getBlockSizeLong();
        long availableBlocksLong = mStatFs.getAvailableBlocksLong();
        return blockSizeLong * availableBlocksLong;
    } else
        return getSDcardAvailableSize();
}
 
源代码18 项目: Dainty   文件: DownloadRecordActivity.java
private void refreshStorageStatus() {
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
        long blockSize = statFs.getBlockSizeLong();
        long totalBlocks = statFs.getBlockCountLong();
        long availableBlocks = statFs.getAvailableBlocksLong();
        String totalSize = Formatter.formatFileSize(this, blockSize * totalBlocks);
        String availableSize = Formatter.formatFileSize(this, blockSize * availableBlocks);
        textProgressBar.setTextAndProgress("内置存储可用:" + availableSize + "/共:" + totalSize, (int) ((float) availableBlocks / totalBlocks * 100));
    } else {
        textProgressBar.setTextAndProgress("内置存储不可用", 0);
    }
}
 
源代码19 项目: Mizuu   文件: MizLib.java
@SuppressWarnings("deprecation")
public static long getFreeMemory() {
    StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
    if (hasJellyBeanMR2())
        return stat.getAvailableBlocksLong() * stat.getBlockSizeLong();
    else
        return stat.getAvailableBlocks() * stat.getBlockSize();
}
 
源代码20 项目: lrkFM   文件: DiskUtil.java
/**
 * Calculates total space on disk
 * @param external  If true will query external disk, otherwise will query internal disk.
 * @return Number of mega bytes on disk.
 */
public static int totalSpaceGibi(boolean external)
{
    StatFs statFs = getStats(external);
    long total = (statFs.getBlockCountLong() * statFs.getBlockSizeLong()) / GIBIBYTE;
    Log.d(TAG, "Total disk space: " + String.valueOf(total));
    return (int) total;
}