Android SD卡路径问题以及如何获取SDCard 内存
2011-04-22 10:50
691 查看
在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题。较好的方法是通过Environment 来获取路径,最后给出一个例子,教你怎样获取SDCard 的内存,显示出来告诉用户。讲述的内容如下:
//判断是否有插入存储卡
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File path =Environment.getExternalStorageDirectory();
//取得sdcard文件路径
StatFs statfs=new StatFs(path.getPath());
//获取block的SIZE
long blocSize=statfs.getBlockSize();
//获取BLOCK数量
long totalBlocks=statfs.getBlockCount();
//己使用的Block的数量
long availaBlock=statfs.getAvailableBlocks();
String[] total=filesize(totalBlocks*blocSize);
String[] availale=filesize(availaBlock*blocSize);
//设置进度条的最大值
int maxValue=Integer.parseInt(availale[0])
*viewHolder.myBar.getMax()/Integer.parseInt(total[0]);
viewHolder.myBar.setProgress(maxValue);
String Text="总共:"+total[0]+total[1]+"/n" +"可用:"+availale[0]+availale[1];
}else
if(Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)){
Toast.makeText(getStorageActivity.this, "没有sdCard", 1000).show();
}
//返回数组,下标1代表大小,下标2代表单位 KB/MB
String[] filesize(long size){
String str="";
if(size>=1024){
str="KB";
size/=1024;
if(size>=1024){
str="MB";
size/=1024;
}
}
DecimalFormat formatter=new DecimalFormat();
formatter.setGroupingSize(3);
String result[] =new String[2];
result[0]=formatter.format(size);
result[1]=str;
return result;
}
}
//判断是否有插入存储卡
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File path =Environment.getExternalStorageDirectory();
//取得sdcard文件路径
StatFs statfs=new StatFs(path.getPath());
//获取block的SIZE
long blocSize=statfs.getBlockSize();
//获取BLOCK数量
long totalBlocks=statfs.getBlockCount();
//己使用的Block的数量
long availaBlock=statfs.getAvailableBlocks();
String[] total=filesize(totalBlocks*blocSize);
String[] availale=filesize(availaBlock*blocSize);
//设置进度条的最大值
int maxValue=Integer.parseInt(availale[0])
*viewHolder.myBar.getMax()/Integer.parseInt(total[0]);
viewHolder.myBar.setProgress(maxValue);
String Text="总共:"+total[0]+total[1]+"/n" +"可用:"+availale[0]+availale[1];
}else
if(Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)){
Toast.makeText(getStorageActivity.this, "没有sdCard", 1000).show();
}
//返回数组,下标1代表大小,下标2代表单位 KB/MB
String[] filesize(long size){
String str="";
if(size>=1024){
str="KB";
size/=1024;
if(size>=1024){
str="MB";
size/=1024;
}
}
DecimalFormat formatter=new DecimalFormat();
formatter.setGroupingSize(3);
String result[] =new String[2];
result[0]=formatter.format(size);
result[1]=str;
return result;
}
}
相关文章推荐
- android SD卡路径问题以及如何获取SDCard 内存
- Android-----SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- 返回解释Java乔晓松-Android SD卡路径问题以及如何获取SDCard内存大小
- android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存 (转)
- Android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存