android开发SDcard 响应的文件相关处理(一)
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开发SDcard 响应的文件相关处理(一)的更多相关文章
- Android开发之获取xml文件的输入流对象
介绍两种Android开发中获取xml文件的输入流对象 第一种:通过assets目录获取 1.首先是在Project下app/src/main目录下创建一个assets文件夹,将需要获取的xml文件放 ...
- Android开发环境——连接驱动ADB相关内容汇总
Android开发环境将分为SDK相关内容.Eclipse ADT相关内容.模拟器AVD相关内容.调试器DDMS相关内容.日志LogCat相关内容.连接驱动ADB相关内容.内存泄露检测工具MAT相关 ...
- Android开发环境——调试器 DDMS相关内容汇总
Android开发环境将分为SDK相关内容.Eclipse ADT相关内容.模拟器AVD相关内容.调试器DDMS相关内容.日志LogCat相关内容.连接驱动ADB相关内容.内存泄露检测工具MAT ...
- 关于android开发添加菜单XML文件之后无法在R.java中生成ID的问题
因为和同学分开做的android软件,现在想整合他做的界面部分,于是拷贝了res和src文件夹的文件,其中包括一个res.menu文件夹中的XML.但是每次将该文件导入到工程总无法自动在R.java中 ...
- Android向SDCard中上传文件时报错:Failed to push items
向sdcard中添加文件为什么总是提示Failed to push the item(s) Failed to push XXXXX.txt on emulator- : Read-only ...
- android开发环境与工具使用相关备忘录
一.名称简介 1.ADT(Android Development Tools) 可以简单理解为在eclipse下开发安卓的插件或工具包. 查看当前ADT版本方法:help-> about ecl ...
- Android开发手记(21) 遍历文件夹
我们在遍历文件夹的时候由于涉及到SD卡相关操作,所以我们需要添加如下权限: <uses-permission android:name="android.permission.WRIT ...
- Android开发,布局xml文件命名注意事项——不能包含任何大写字母
转自:http://blog.sina.com.cn/s/blog_628b45090100zuit.html 在开发Android应用时,会接触到布局文件,一般在 工程名/res/layout/*. ...
- Android开发中string.xml文件的使用
为什么需要把应用中出现的文字单独存放在string.xml文中呢? 一:是为了国际化,Android建议将在屏幕上显示的文字定义在strings.xml中,如果今后需要进行国际化,比如我们开发的应用本 ...
随机推荐
- 判图的连通性(dfs,并查集)
一.无向图 欧拉回路:每个顶点度数都是偶数 欧拉路:所有点度数为偶数,或者只有2个点度数为奇数 当然判连通性 hdu 1878 欧拉回路 两种判连通的方法 dfs #include <iostr ...
- Binary Tree Level Order Traversal - leetcode - java
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- R基础
R的对象类型包括数值型(numeric),复数型(complex),逻辑型(logical),字符型(character)和原味型(raw),列表(list)递归结构:函数(function)和表达式 ...
- CMS(Concurrent Mark-Sweep)
CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器.对于要求服务器响应速度的应用上,这种垃圾回收器非常适合.在启动JVM参数加上-XX:+Use ...
- CSS3 背景属性
CSS3 background-size 属性 div {background:url(bg_flower.gif);-moz-background-size:63px 100px; /* 老版本的 ...
- 在Fedora 23 Server和Workstation上安装LAMP(Linux, Apache, MariaDB和PHP)
在安装LAMP之前,建议先更新系统包$ sudo dnf update 第一步:安装Apache Web服务器1.在Fedora 23安装Apache,你可以运行下面的命令:$ sudo dnf in ...
- IPTV小窗口播放视频 页面焦点无法移动的解决方法
在IPTV高清页面中,小窗口播放视频时,在某些机顶盒上(如高清中兴.高清大亚4904)会出现焦点无法移动现象,即按键无响应.被这个bug困扰了很久,虽然我知道解决方法,但只知其然,不知其所以然.今天做 ...
- php 文件操作类
class fileInit { /** * 创建空文件 * @param string $filename 需要创建的文件 * @return */ public function create_f ...
- mongo设计(三)
原文:http://blog.mongodb.org/post/88473035333/6-rules-of-thumb-for-mongodb-schema-design-part-3 By Wil ...
- jupyter巨好玩-调试代码自动变文档
有时候,我们写python程序,总是会出现各种错误,当酒过三巡,菜过五味,所有问题都解决了之后,我们就想把犯过的错误总结一下,以便日后查询.这时候问题来了,难道要一一重现一下? jupyter来了!一 ...