这个类整合了写文件,删除文件,复制文件,搜索文件,判断文件是否存在等,是对一些常用的功能进行封装了。 用于记录和方便以后使用。
public class FileAdapter { private static final String TAG = "FileAdaptor"; /**  * 获取指定位置的指定类型的文件  *   * @param path  *    文件夹路径  * @param type  *    文件类型(如“*.jpg;*.png;*.gif”)  * @return  */ public static void getFileList(String path, String type,       final OnFileListCallback onFileListCallback) {     new AsyncTask<String, String, String>() {       ArrayList<FileInfo> list = new ArrayList<FileInfo>();       @Override       protected void onPostExecute(String result) {         onFileListCallback.SearchFileListInfo(list);       }       @Override       protected String doInBackground(String... params) {         // TODO Auto-generated method stub                  String path = params[1].substring(params[1]               .lastIndexOf(".") + 1);         File file = new File(params[0]);         scanSDCard(file,path,list);         return null;       }     }.execute(path, type, ""); } /**  * 扫描完成后的回调,获取文件列表必须实现  *   * @author cola  *   */ public interface OnFileListCallback {     /**    * 返回查询的文件列表    * @param list 文件列表    */     public void SearchFileListInfo(List<FileInfo> list); } private static void scanSDCard(File file, String ext, ArrayList<FileInfo> list) {     if (file.isDirectory()) {       File[] files = file.listFiles();       if (files != null) {         for (int i = 0; i < files.length; i++) {             File tmp = files<i>;             if (tmp.isFile()) {               String fileName = tmp.getName();               String filePath = tmp.getName();               if (fileName.indexOf(".") >= 0) {                 fileName = fileName.substring(fileName                       .lastIndexOf(".") + 1);                 if (ext != null && ext.equalsIgnoreCase(fileName)) {                     AspLog.i(TAG, filePath);                     FileInfo info = new FileInfo();                     info.fileName = filePath;                     info.filePath = tmp.getAbsolutePath();                     list.add(info);                 }               }             } else               scanSDCard(tmp, ext, list);         }       }     } else {       if (file.isFile()) {         String fileName = file.getName();         String filePath = file.getName();         if (fileName.indexOf(".") >= 0) {             fileName = fileName                 .substring(fileName.lastIndexOf(".") + 1);             if (ext != null && ext.equalsIgnoreCase(fileName)) {               AspLog.i(TAG, filePath);               FileInfo info = new FileInfo();               info.fileName = filePath;               info.filePath = file.getAbsolutePath();               list.add(info);             }         }       }     } } /*** 判断*/ public static boolean isSdCardExist() { return Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); } /*** 目录相关*/ public static String getSdCardRootDir() { return Environment.getExternalStorageDirectory().getPath() + "/"; } public static String getCacheDir(Context ctx) { // /data/data/<package name>/cache return ctx.getCacheDir().getPath() + "/"; } public static String getFilesDir(Context ctx) { // /data/data/<package name>/files return ctx.getFilesDir().getPath() + "/"; } public static String getSharedPrefDir(Context ctx) { String path = "/data/data/com.timedee.calendar/shared_prefs/"; mkDir(path); return path; } public static String getSdDataDir() { return getSdCardRootDir() + "timedee/.data/"; } public static String getBackupDir() { return getSdCardRootDir() + "timedee/.backup/"; } public static boolean mkDir(String path) { File dir = new File(path); boolean res = dir.mkdirs(); return res; } /*** 文件操作相关*/ public static boolean writeFile(String path, InputStream is) { boolean result = false; FileOutputStream os = null; BufferedOutputStream bos = null; try {   File file = new File(path);   os = new FileOutputStream(file, false);   bos = new BufferedOutputStream(os);   int readLen = 0;   byte[] buf = new byte[1024];   while ((readLen = is.read(buf)) != -1) {     bos.write(buf, 0, readLen);   }   bos.flush();   bos.close();   os.close();   result = true; } catch (Exception e) {   e.printStackTrace(); } finally {   try {     bos.close();     os.close();   } catch (Exception e) {     e.printStackTrace();   } } return result; } public static boolean writeTextFile(String path, String data) { boolean result = false; FileWriter fw = null; try {   File file = new File(path);   fw = new FileWriter(file);   fw.write(data);   fw.close();   result = true; } catch (Exception e) {   e.printStackTrace(); } finally {   try {     fw.close();   } catch (Exception e) {     e.printStackTrace();   } } return result; } public static InputStream readFile(String path) { File file = new File(path); FileInputStream fis = null; try {   fis = new FileInputStream(file); } catch (Exception e) { } return fis; } public static boolean CopyFile(String fromFile, String toFile) { try {   InputStream fosfrom = new FileInputStream(fromFile);   OutputStream fosto = new FileOutputStream(toFile);   byte bt[] = new byte[4096];   int c;   while ((c = fosfrom.read(bt)) > 0) {     fosto.write(bt, 0, c);   }   fosfrom.close();   fosto.close();   bt = null;   return true; } catch (Exception ex) {   return false; } } public static boolean CopyAssetFile(Context ctx, String fromFile, String toFile) { try {   InputStream fosfrom = ctx.getAssets().open(fromFile);   OutputStream fosto = new FileOutputStream(toFile);   byte bt[] = new byte[4096];   int c;   while ((c = fosfrom.read(bt)) > 0) {     fosto.write(bt, 0, c);   }   fosfrom.close();   fosto.close();   bt = null;   return true; } catch (Exception ex) {   return false; } } public static boolean deleteFile(String path) { try {   File file = new File(path);   return file.delete(); } catch (Exception ex) {   return false; } } public static boolean isFileExist(String path) { try {   File file = new File(path);   return file.exists(); } catch (Exception ex) { } return false; }}</i>

更多的移动互联网的发展趋势app开发移动互联网应用相关的资料请到互联网的一点事www.yidin.net留言
android QQ群:222392467 资料: http://www.yidin.net/?p=8280 http://www.yidin.net/?p=9725

更多相关文章

  1. FileOutputStream中的 3种write方式
  2. Android工程中怎样使用隐藏API
  3. android 5 设置图案锁,锁屏界面进入相机拍照、查看锁定的照片后,退
  4. Android(安卓)studio中导出jar包
  5. ubuntu16.04 + Qt5.13 搭建安卓开发环境
  6. Android(安卓)SharedPreferences 详解 源码解析
  7. Android(安卓)pcm文件播放方法(AudioTrack)
  8. Android(安卓)dex分包方案
  9. Android中SharedPreferences存储数据

随机推荐

  1. 为什么在MySQL中不建议使用UTF-8
  2. mysql 8.0.22压缩包完整安装与配置教程图
  3. Windows下MySQL定时备份脚本的实现
  4. Mysql根据某层部门ID查询所有下级多层子
  5. MySQL 8.0 新特性之检查约束的实现
  6. 查看修改MySQL表结构命令
  7. MySQL <>和<=> 运算符介绍
  8. mysql创建用户并赋予用户权限详细操作教
  9. mysql中like % %模糊查询的实现
  10. 详解MySQL like如何查询包含&#39;%&#39;