博客
关于我
Android 手机sdcard目录或文件的拷贝、移动、删除(递归)
阅读量:219 次
发布时间:2019-02-28

本文共 2743 字,大约阅读时间需要 9 分钟。

搞安卓开发一年多了,这是第一次写博客,以后会慢慢把以前的东西整理出来,给自己一个记录,也与广大网友一起分享和进步。写的一个关于文件操作的静态工具类,实现手机SD卡目录或文件的拷贝、移动、删除(递归)
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;/** *  * @ClassName:  FileOperator    * @Description:  文件操作类,删除文件或文件目录 * @author: SAU_LC66 * @date:   2014-09-25 19:01   */public class FileOperator {	/**	 * 复制文件目录	 * @param srcDir 要复制的源目录 eg:/mnt/sdcard/DB	 * @param destDir 复制到的目标目录 eg:/mnt/sdcard/db/	 * @return 	 */	public static boolean copyDir(String srcDir, String destDir){        File sourceDir = new File(srcDir);        //判断文件目录是否存在        if(!sourceDir.exists()){            return false;        }        //判断是否是目录        if (sourceDir.isDirectory()) {            File[] fileList = sourceDir.listFiles();            File targetDir = new File(destDir);            //创建目标目录            if(!targetDir.exists()){                targetDir.mkdirs();            }            //遍历要复制该目录下的全部文件            for(int i= 0;i
0){ streamTo.write(buffer, 0, len); } streamFrom.close(); streamTo.close(); return true; } catch(Exception ex){ return false; } } /** * 把文件拷贝到某一目录下 * @param srcFile * @param destDir * @return */ public static boolean copyFileToDir(String srcFile, String destDir){ File fileDir = new File(destDir); if (!fileDir.exists()) { fileDir.mkdir(); } String destFile = destDir +"/" + new File(srcFile).getName(); try{ InputStream streamFrom = new FileInputStream(srcFile); OutputStream streamTo = new FileOutputStream(destFile); byte buffer[]=new byte[1024]; int len; while ((len= streamFrom.read(buffer)) > 0){ streamTo.write(buffer, 0, len); } streamFrom.close(); streamTo.close(); return true; } catch(Exception ex){ return false; } } /** * 移动文件目录到某一路径下 * @param srcFile * @param destDir * @return */ public static boolean moveFile(String srcFile, String destDir) { //复制后删除原目录 if (copyDir(srcFile, destDir)) { deleteFile(new File(srcFile)); return true; } return false; } /** * 删除文件(包括目录) * @param delFile */ public static void deleteFile(File delFile) { //如果是目录递归删除 if (delFile.isDirectory()) { File[] files = delFile.listFiles(); for (File file : files) { deleteFile(file); } }else{ delFile.delete(); } //如果不执行下面这句,目录下所有文件都删除了,但是还剩下子目录空文件夹 delFile.delete(); } }

最后注意在AndroidManifest.xml中注册权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

转载地址:http://gpwp.baihongyu.com/

你可能感兴趣的文章
MySQL Error Handling in Stored Procedures---转载
查看>>
MVC 区域功能
查看>>
MySQL FEDERATED 提示
查看>>
mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
查看>>
Mysql group by
查看>>
MySQL I 有福啦,窗口函数大大提高了取数的效率!
查看>>
mysql id自动增长 初始值 Mysql重置auto_increment初始值
查看>>
MySQL in 太多过慢的 3 种解决方案
查看>>
Mysql Innodb 锁机制
查看>>
MySQL InnoDB中意向锁的作用及原理探
查看>>
MySQL InnoDB事务隔离级别与锁机制深入解析
查看>>
Mysql InnoDB存储引擎 —— 数据页
查看>>
Mysql InnoDB存储引擎中的checkpoint技术
查看>>
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
查看>>
MySQL InnoDB引擎的锁机制详解
查看>>
Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
查看>>
mysql InnoDB数据存储引擎 的B+树索引原理
查看>>
mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
查看>>
mysql problems
查看>>
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
查看>>