文件夹的拷贝

1.首先确定源文件的地址,还有拷贝到哪的目标地址,

2.然后判断目标地址是否有该文件夹,如果没有就创建文件夹,

3.使用递归访问源文件夹内的全部文件包括子文件夹,

4.判断是文件夹就继续递归调用继续访问该文件夹的内容,是文件就调用读写的方法,

5.然后创建流对象进行读和写到目标地址。

public static void main(String[] args) {
	        Copy("D:\\src", "D:\\des");
	    }
	    public static void Copy(String src, String des) {
	        //建立源文件地址对象和目标地址对象
	        File fsrc = new File(src);
	        File fdes = new File(des);
	        //列出文件目录
	        File[] arr = fsrc.listFiles();
	        //判断地址是否存在文件夹,没有就创建
	        if(!fdes.exists()) {
	            fdes.mkdirs();
	        }
	        
	         for(File f : arr) {
	             if(f.isDirectory()) {
	                //递归调用
	                 Copy(f.getPath(), des+"\\"+f.getName());
	             } else {
	                //调用读写的方法
	                 ReadWrite(f.getPath(), des+"\\"+f.getName());
	             }
	         }
	         return true;
	         /*
	        for(int i=0; i < arr.length; i++) {
	            if(arr[i].isDirectory()) {
	                CopyMake(arr[i].getPath(), des+"\\"+arr[i].getName());
	            } else {
	                Copy(arr[i].getPath(), des+"\\"+arr[i].getName());
	            }
	        }*/
	    }
	    public static void ReadWrite(String src, String des) {
	        FileReader fr = null;
	        FileWriter fw = null;
	        BufferedReader bufr = null;
	        BufferedWriter bufw = null;
	        try{
	            fr = new FileReader(src);
	            fw = new FileWriter(des);
	            bufr = new BufferedReader(fr);
	            bufw = new BufferedWriter(fw);
	            String len;
	            while((len = bufr.readLine()) != null) {
	                bufw.write(len);
	                bufw.newLine();
	                bufw.flush();
	            }
	        } catch(IOException e) {
	            System.out.println("User: "+e.toString());
	        } finally {
	            try {
	                if(bufr != null) {
	                    bufr.close();
	                }
	                if(bufw != null) {
	                    bufw.close();
	                }
	            } catch(IOException e) {
	                System.out.println("User: "+e.toString());
	            }
	        }
    }
posted @ 2016-04-28 13:38  Rancvl  阅读(237)  评论(0编辑  收藏  举报