博客
关于我
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/

你可能感兴趣的文章
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>
multi_index_container
查看>>
MySQL DBA 进阶知识详解
查看>>
Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
查看>>
Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
查看>>
mysql deadlock found when trying to get lock暴力解决
查看>>
MuseTalk如何生成高质量视频(使用技巧)
查看>>
mutiplemap 总结
查看>>