Android得到SD卡文件夹大小以及删除文件夹操作

float cacheSize = dirSize(new File(Environment.getExternalStorageDirectory() + AppConstants.APP_CACHE_FOLDER)) / 1024.0f / 1024.0f;
tvCacheSize.setText(((int) (cacheSize * 100)) / 100.0f + "M");
/**
* Return the size of a directory in bytes
*/
private long dirSize(File dir) {

if (dir.exists()) {
long result = 0;
File[] fileList = dir.listFiles();
for (int i = 0; i < fileList.length; i++) {
// Recursive call if it‘s a directory
if (fileList[i].isDirectory()) {
result += dirSize(fileList[i]);
} else {
// Sum the file size in bytes
result += fileList[i].length();
}
}
return result; // return the file size
}
return 0;
}

case R.id.clearCacheLayout:
try {
DeleteRecursive(new File(Environment.getExternalStorageDirectory() + AppConstants.APP_CACHE_FOLDER));
Toast.makeText(mActivity, "缓存已清除", Toast.LENGTH_SHORT).show();
float cacheSize = dirSize(new File(Environment.getExternalStorageDirectory() + AppConstants.APP_CACHE_FOLDER)) / 1024.0f / 1024.0f;
tvCacheSize.setText(((int) (cacheSize * 100)) / 100 + "M");
} catch (Exception e) {
e.printStackTrace();
}
break;


/** 
* 删除某个文件夹下的所有文件夹和文件 
* 
* @param delpath 
*/
private void DeleteRecursive(File fileOrDirectory) {
if (fileOrDirectory.isDirectory())
for (File child : fileOrDirectory.listFiles())
DeleteRecursive(child);

fileOrDirectory.delete();
}

 读取Assets文件内容

//从assets 文件夹中获取文件并读取数据
public String getFromAssets(String fileName){
   String result = "";
   try {
InputStream in = getResources().getAssets().open(fileName);
//获取文件的字节数
int lenght = in.available();
//创建byte数组
byte[]  buffer = new byte[lenght];
//将文件中的数据读到byte数组中
in.read(buffer);
result = EncodingUtils.getString(buffer, ENCODING);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。