Android 手机sdcard目录或文件的拷贝、移动、删除(递归)

搞安卓开发一年多了,这是第一次写博客,以后会慢慢把以前的东西整理出来,给自己一个记录,也与广大网友一起分享和进步。写的一个关于文件操作的静态工具类,实现手机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中注册权限:



Demo源码下载

你可能感兴趣的:(原创,Android)