package com.yang.sdcard;
import java.io.File;
import java.text.DecimalFormat;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
public class SdcardActivity extends Activity {
private Button myButton, myButton2;
private TextView myTextView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button) findViewById(R.id.myButton);
myButton2 = (Button) findViewById(R.id.myButton2);
myTextView = (TextView) findViewById(R.id.myTextView);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] total = fileSize(getTotalExternalMemorySize());
String[] available = fileSize(getAvailableExternalMemorySize());
String text = "总共" + total[0] + total[1] + "\n";
text += "可用" + available[0] + available[1];
myTextView.setText(text);
}
});
myButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] total = fileSize(getTotalInternalMemorySize());
String[] available = fileSize(getAvailableInternalMemorySize());
String text = "总共" + total[0] + total[1] + "\n";
text += "可用" + available[0] + available[1];
myTextView.setText(text);
}
});
}
// 这个是手机内存的总空间大小
public static long getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
// 这个是手机内存的可用空间大小
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;
}
// 这个是外部存储的总空间大小
public static long getAvailableExternalMemorySize() {
long availableExternalMemorySize = 0;
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
availableExternalMemorySize = availableBlocks * blockSize;
}else if (Environment.getExternalStorageState().equals(
Environment.MEDIA_REMOVED)) {
availableExternalMemorySize = -1;
}
return availableExternalMemorySize;
}
// 这个是外部存储的总空间大小
public static long getTotalExternalMemorySize() {
long totalExternalMemorySize = 0;
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
totalExternalMemorySize = totalBlocks * blockSize;
} else if (Environment.getExternalStorageState().equals(
Environment.MEDIA_REMOVED)) {
totalExternalMemorySize = -1;
}
return totalExternalMemorySize;
}
/* 返回为字符串数组[0]为大小[1]为单位KB或MB */
private String[] fileSize(long size) {
String str = "";
if (size >= 1024) {
str = "KB";
size /= 1024;
if (size >= 1024) {
str = "MB";
size /= 1024;
}
}
DecimalFormat formatter = new DecimalFormat();
/* 每3个数字用,分隔如:1,000 */
formatter.setGroupingSize(3);
String result[] = new String[2];
result[0] = formatter.format(size);
result[1] = str;
return result;
}
}
分享到:
相关推荐
获取手机存储空间值 private String getInternalMemoryPath() { return Environment.getDataDirectory().getPath(); } /** * * @return 内置sd卡路径 */ private String getExternalMemoryPath() { ...
Android应用源码SdCard读写文件实
sdcard存储空间获取总大小和可用大小; 新名词记录{StatFs:描述文件系统信息的类} 概览 在开发中,我们或多或少都会用到存储空间进行存储数据。移动设备上可以有两种的存储方式:手机内部空间和sdcard外部空间。...
SDCard存储卡在 Android 手机上是可以随时插拔的,每次的动作都会引起Android系统ACTION_BROADCAST,本例子将计算出 SDCard 的剩余容量和总容量。供测试的sd卡中存了两首歌和一个30M的文件,现在检测剩余的空间正好...
针对Android中的文件存储方式,本程序以简练的方式,实现了文件内部存储和SDCard存储。代码清晰,注解详细,方便学习。
安卓的录视频源码,找了好多天才找到的真正可以用不出错的。只有开始停止两个按钮。按个人需要扩展。
Android应用源码SdCard读写文件实例.zip
android应用开发中关于SDCard读写操作的实例代码,在下载学习SDCard操作中,碰到很棘手的问题了。不过最后还在我的坚持下成功了,
Android应用源码SdCard读写文件实例源码.可供学习设计参考。
一段详细的往手机内存和手机sdcard卡上面存储数据的代码,作者对里面的功能进行了封装,在实际的开发项目中可以直接拿来用。
自己写的一个将网上资源存储到sdcard中的源代码。注意输入网上资源(例如图片)的时候要精确到图片的位置(即.jpg)而不是网址。
Android应用源码SdCard读写文件实例.rar Android应用源码SlidingMenu使用例子.rar Android应用源码串口通信(JNI)例子.rar Android应用源码任务提醒源码.rar Android应用源码仿360手机助手首页浮动菜单.rar Android...
Android数据存储之Sdcard,Android数据存储之Sdcard,自己写的简单例子,需要的可以参考一下。
Android数据存储(内置sdcard)案例1
使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的。对于像视频这样的大文件,我们可以把它存放在...