android中的StatFs类
来源:互联网 发布:电脑制图软件有哪些 编辑:程序博客网 时间:2024/06/04 23:26
android中的StatFs类
存储空间, linux, 手机, java
StatFs 一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
StatFs 常用方法:
Java代码:
1. getAvailableBlocks()
2. 解释:返回 Int ,获取当前可用的存储空间
3. getBlockCount()
4. 解释:返回 Int ,获取该区域可用的文件系统数
5. getBlockSize()
6. 解释:返回 Int ,大小,以字节为单位,一个文件系统
7. getFreeBlocks()
8. 解释:返回 Int ,该块区域剩余的空间
9. restat(String path)
10. 解释:执行一个由该对象所引用的文件系统
复制代码
完整例子读取 SDCard 内存
Java代码:
1. package com.terry;
2.
3. import java.io.File;
4. import java.text.DecimalFormat;
5. import android.R.integer;
6. import android.app.Activity;
7. import android.os.Bundle;
8. import android.os.Environment;
9. import android.os.StatFs;
10. import android.view.View;
11. import android.view.View.OnClickListener;
12. import android.widget.Button;
13. import android.widget.ProgressBar;
14. import android.widget.TextView;
15. import android.widget.Toast;
16.
17. public class getStorageActivity extends Activity {
18.
19. private Button myButton;
20.
21. /** Called when the activity is first created. */
22.
23. @Override
24. public void onCreate(Bundle savedInstanceState) {
25.
26. super.onCreate(savedInstanceState);
27.
28. setContentView(R.layout.main);
29.
30. findView();
31.
32. viewHolder.myButton.setOnClickListener(new OnClickListener() {
33.
34. @Override
35. public void onClick(View arg0) {
36.
37. // TODO Auto-generated method stub
38.
39. getSize();
40.
41. }
42.
43. });
44.
45. }
46.
47. void findView(){
48.
49. viewHolder.myButton=(Button)findViewById(R.id.Button01);
50.
51. viewHolder.myBar=(ProgressBar)findViewById(R.id.myProgressBar);
52.
53. viewHolder.myTextView=(TextView)findViewById(R.id.myTextView);
54.
55. }
56.
57. void getSize(){
58.
59. viewHolder.myTextView.setText("");
60.
61. viewHolder.myBar.setProgress(0);
62.
63. //判断是否有插入存储卡
64.
65. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
66.
67. File path =Environment.getExternalStorageDirectory();
68.
69. //取得sdcard文件路径
70.
71. StatFs statfs=new StatFs(path.getPath());
72.
73. //获取block的SIZE
74.
75. long blocSize=statfs.getBlockSize();
76.
77. //获取BLOCK数量
78.
79. long totalBlocks=statfs.getBlockCount();
80.
81. //己使用的Block的数量
82.
83. long availaBlock=statfs.getAvailableBlocks();
84.
85. String[] total=filesize(totalBlocks*blocSize);
86.
87. String[] availale=filesize(availaBlock*blocSize);
88.
89. //设置进度条的最大值
90.
91. int maxValue=Integer.parseInt(availale[0])
92.
93. *viewHolder.myBar.getMax()/Integer.parseInt(total[0]);
94.
95. viewHolder.myBar.setProgress(maxValue);
96.
97. String Text="总共:"+total[0]+total[1]+"\n"+"可用:"+availale[0]+availale[1];
98.
99. viewHolder.myTextView.setText(Text);
100.
101. }
102.
103. else if(Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)){
104.
105. Toast.makeText(getStorageActivity.this, "没有sdCard", 1000).show();
106.
107. }
108.
109. }
110.
111. //返回数组,下标1代表大小,下标2代表单位 KB/MB
112.
113. String[] filesize(long size){
114.
115. String str="";
116.
117. if(size>=1024){
118.
119. str="KB";
120.
121. size/=1024;
122.
123. if(size>=1024){
124.
125. str="MB";
126.
127. size/=1024;
128.
129. }
130.
131. }
132.
133. DecimalFormat formatter=new DecimalFormat();
134.
135. formatter.setGroupingSize(3);
136.
137. String result[] =new String[2];
138.
139. result[0]=formatter.format(size);
140.
141. result[1]=str;
142.
143. return result;
144.
145. }
146.
147. }
复制代码
第二个例子:该类获取了SDCARD的信息
package idv.nightgospel.information;
import java.io.File;
import android.content.Context;
import android.os.Environment;
import android.os.StatFs;
import android.text.format.Formatter;
public class SDCardUsage {
privatestatic File path = Environment.getExternalStorageDirectory();
privatestatic StatFs stat = new StatFs(path.getPath());
privatestatic long blockSize = stat.getBlockSize();
privatestatic long totalBlocks = stat.getBlockCount();
privatestatic long availableBlocks;
publicstatic String getTotalStorage(Context context){
stat.getAvailableBlocks();
returnFormatter.formatFileSize(context, Long.parseLong(totalBlocks * blockSize +""));
}
publicstatic String getFreeStorage(Context context){
returnFormatter.formatFileSize(context, Long.parseLong(stat.getAvailableBlocks()*blockSize + ""));
}
publicstatic boolean isCardAvailable(){
if(Environment.getExternalStorageState().equals(Environment.MEDIA_UNMOUNTED)
||Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)
||Environment.getExternalStorageState().equals(Environment.MEDIA_BAD_REMOVAL)
||Environment.getExternalStorageState().equals(Environment.MEDIA_UNMOUNTABLE)
||Environment.getExternalStorageState().equals(Environment.MEDIA_NOFS))
returnfalse;
else
returntrue;
}
}
- android中的StatFs类
- android中的StatFs类
- android中的StatFs类
- android Environment StatFs 类
- Android:StatFs类
- Android StatFs类
- Android StatFs类
- Android Environment 和 Statfs
- Android:StatFs类 获取系统/sdcard存储空间信息
- 【Android】StatFs类--获取系统/sdcard存储空间信息
- android Environment statfs存储需要熟知的类
- android Environment statfs存储需要熟知的类
- Android:StatFs类 获取系统/sdcard存储空间信息
- Android:StatFs类 获取系统/sdcard存储空间信息
- 讲述 Environment, StatFs 类
- statfs
- statfs
- Android中statfs使用注意事项
- 【Matlab学习笔记】图像的二值化(待续)
- 剑指offer 面试题40—数组中两个只出现一次的数字
- fedora 添加国内源
- iOS网络监测
- C编译器剖析_尾声
- android中的StatFs类
- hiho博弈游戏·Nim游戏
- [授权发表]基于 ssh + Xpra 构建 Docker 桌面系统
- nyoj 树状数组 522Interval 116士兵杀敌(二)
- 通过dnw进行裸机烧写
- web服务器iis6信息服务dede系统网站浏览出现网页js脚本错误
- 操作系统Marking02进程切换代码
- MySql noinstall-5.1.34-win32 配置
- Playing Hard to Get Works Differently for Men and Women