本文共 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;i0){ 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/