Android中StatFs获取系统/sdcard存储(剩余空间)大小
2012-10-17 16:14
483 查看
StatFs一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
StatFs常用方法:
Java代码:
getAvailableBlocks()
解释:返回 Int ,获取当前可用的存储空间
getBlockCount()
解释:返回 Int ,获取该区域可用的文件系统数
getBlockSize()
解释:返回 Int ,大小,以字节为单位,一个文件系统
getFreeBlocks()
解释:返回 Int ,该块区域剩余的空间
restat(String path)
解释:执行一个由该对象所引用的文件系统
package com.orgcent.util;
import java.io.File;
import android.os.Environment;
import android.os.StatFs;
public class MemoryStatus
{
static final
int ERROR = -1;
/**
* 外部存储是否可用
* @return
*/
static public
boolean externalMemoryAvailable()
{
return android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
}
/**
* 获取手机内部可用空间大小
* @return
*/
static public
long getAvailableInternalMemorySize()
{
File path =
Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
/**
* 获取手机内部空间大小
* @return
*/
static public
long getTotalInternalMemorySize()
{
File path =
Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
/**
* 获取手机外部可用空间大小
* @return
*/
static public
long getAvailableExternalMemorySize()
{
if (externalMemoryAvailable())
{
File path =
Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
} else
{
return ERROR;
}
}
/**
* 获取手机外部空间大小
* @return
*/
static public
long getTotalExternalMemorySize()
{
if (externalMemoryAvailable())
{
File path =
Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
} else
{
return ERROR;
}
}
static public
String formatSize(long size)
{
String suffix =
null;
if (size
>= 1024)
{
suffix = "KiB";
size /= 1024;
if (size
>= 1024)
{
suffix = "MiB";
size /= 1024;
}
}
StringBuilder resultBuffer = new StringBuilder(Long.toString(size));
int commaOffset = resultBuffer.length()
- 3;
while (commaOffset
> 0) {
resultBuffer.insert(commaOffset,
',');
commaOffset -= 3;
}
if (suffix
!= null)
resultBuffer.append(suffix);
return resultBuffer.toString();
}
}
StatFs常用方法:
Java代码:
getAvailableBlocks()
解释:返回 Int ,获取当前可用的存储空间
getBlockCount()
解释:返回 Int ,获取该区域可用的文件系统数
getBlockSize()
解释:返回 Int ,大小,以字节为单位,一个文件系统
getFreeBlocks()
解释:返回 Int ,该块区域剩余的空间
restat(String path)
解释:执行一个由该对象所引用的文件系统
package com.orgcent.util;
import java.io.File;
import android.os.Environment;
import android.os.StatFs;
public class MemoryStatus
{
static final
int ERROR = -1;
/**
* 外部存储是否可用
* @return
*/
static public
boolean externalMemoryAvailable()
{
return android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
}
/**
* 获取手机内部可用空间大小
* @return
*/
static public
long getAvailableInternalMemorySize()
{
File path =
Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
/**
* 获取手机内部空间大小
* @return
*/
static public
long getTotalInternalMemorySize()
{
File path =
Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
/**
* 获取手机外部可用空间大小
* @return
*/
static public
long getAvailableExternalMemorySize()
{
if (externalMemoryAvailable())
{
File path =
Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
} else
{
return ERROR;
}
}
/**
* 获取手机外部空间大小
* @return
*/
static public
long getTotalExternalMemorySize()
{
if (externalMemoryAvailable())
{
File path =
Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
} else
{
return ERROR;
}
}
static public
String formatSize(long size)
{
String suffix =
null;
if (size
>= 1024)
{
suffix = "KiB";
size /= 1024;
if (size
>= 1024)
{
suffix = "MiB";
size /= 1024;
}
}
StringBuilder resultBuffer = new StringBuilder(Long.toString(size));
int commaOffset = resultBuffer.length()
- 3;
while (commaOffset
> 0) {
resultBuffer.insert(commaOffset,
',');
commaOffset -= 3;
}
if (suffix
!= null)
resultBuffer.append(suffix);
return resultBuffer.toString();
}
}
相关文章推荐
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中Environment与StatFs获取系统/SDCard存储空间大小
- Android中Environment与StatFs获取系统/SDCard存储空间大小
- Android中Environment与StatFs获取系统/SDCard存储空间大小
- Android:StatFs类 获取系统/sdcard存储空间信息
- Android:StatFs类 获取系统/sdcard存储空间信息
- Android:StatFs类 获取系统/sdcard存储空间信息
- 获取系统/sdcard存储(剩余空间)大小
- Android:StatFs类 获取系统/sdcard存储空间信息
- 【Android】StatFs类--获取系统/sdcard存储空间信息
- Android 获取系统或SDCARD剩余空间信息
- 使用StatFs用于获取系统/sdcard存储空间信息 api18中增加的方法
- Android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等。
- Android 获取系统或SDCARD剩余空间信息