android开发SDcard 响应的文件相关处理(一)
2016-02-01 10:37
459 查看
android开发相关文件类的处理工具类:
package com.gzcivil.utils; import java.io.File; import java.util.ArrayList; import java.util.List; import android.os.Environment; import android.os.StatFs; import com.gzcivil.entity.FileEntity; /** * SDcard 相关处理 * * @author LiJinlun * */ public class FileUtils { /** * 获取指定文件夹 所有文件 * @param Path * @param Extension * @param IsIterative * @return */ public static List<FileEntity> GetFiles(String Path, String Extension, boolean IsIterative) // 搜索目录,扩展名(判断的文件类型的后缀名),是否进入子文件夹 { List<FileEntity> mlist = new ArrayList<FileEntity>(); if (mlist != null && mlist.size() > 0) mlist.clear(); File[] files = new File(Path).listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { File f = files[i]; if (f.isFile()) { if (f.getPath().substring(f.getPath().length() - Extension.length()).equals(Extension)) // 判断扩展名 { FileEntity fileEnt = new FileEntity(); fileEnt.setNewName(f.getName()); fileEnt.setFileSize(CommonUtil.FormetFileSize(f.length())); fileEnt.setFilePath(f.getPath()); mlist.add(fileEnt); } if (!IsIterative) break; // 如果不进入子集目录则跳出 } else if (f.isDirectory() && f.getPath().indexOf("/.") == -1) // 忽略点文件(隐藏文件/文件夹) GetFiles(f.getPath(), Extension, IsIterative); // 这里就开始递归了 } } return mlist; } /** * sdcard 是否存在 * * @return */ public static boolean ExistSDCard() { if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { return true; } else return false; } /** * sdcard 剩余空间 * * @return */ public static long getSDFreeSize() { // 取得SD卡文件路径 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); // 获取单个数据块的大小(Byte) @SuppressWarnings("deprecation") long blockSize = sf.getBlockSize(); // 空闲的数据块的数量 @SuppressWarnings("deprecation") long freeBlocks = sf.getAvailableBlocks(); // 返回SD卡空闲大小 // return freeBlocks * blockSize; //单位Byte // return (freeBlocks * blockSize)/1024; //单位KB return (freeBlocks * blockSize) / 1024 / 1024; // 单位MB } /** * sdcard 总容量 * * @return */ public static long getSDAllSize() { // 取得SD卡文件路径 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); // 获取单个数据块的大小(Byte) @SuppressWarnings("deprecation") long blockSize = sf.getBlockSize(); // 获取所有数据块数 @SuppressWarnings("deprecation") long allBlocks = sf.getBlockCount(); // 返回SD卡大小 // return allBlocks * blockSize; //单位Byte // return (allBlocks * blockSize)/1024; //单位KB return (allBlocks * blockSize) / 1024 / 1024; // 单位MB } // 将SD卡文件夹里文件删除 public static void deleteFile(File file) { if (file.exists()) { if (file.isFile()) { return; } else if (file.isDirectory()) { // 如果它是一个目录 // 声明目录下所有的文件 files[]; File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件 deleteFile(files[i]); // 把每个文件 用这个方法进行迭代 } } file.delete(); } } /** * 删除单个文件 * * @param file */ public static void deleteSingleFile(File file) { if (file.exists()) { if (file.isFile()) { file.delete(); } } } }
相关文章推荐
- Android——修改字符串中所有数字的样式
- Android中px dpi dip density densityDpi 的相关说明
- android Studio/SDK代理设置
- android开发时间和日期的代码实现工具类(一)
- Android中GridView和ArrayAdapter用法实例分析
- android文件和图片的处理工具类(一)
- Binder框架的一些简单总结(关于自定义服务中的Binder)
- android的二进制和十六进制的相互转换工具类(一):
- Android中ListView用法实例分析
- Android布局优化之Merge Include ViewStub使用与源码分析
- android的color整理(一)
- Android 教程
- Android中ListActivity用法实例分析
- Android - Bitmap-内存分析
- android开发中更换图片,程序运行后新图片没有替换旧图
- Android下拉刷新官方版
- [转]android开发之字节顺序
- Android应用安全开发之源码安全
- android CoordinatorLayout使用
- android *** Layout 04