拷貝目錄

package HomeWork;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WorkTest {
	
	    public static void main(String[] args)  
	    {  
	        //在當前目錄下建立一個外層目錄  
	        File dir = new File("F:\\複製後的文件夾(4.20做業)");  
	        dir.mkdir();  
	   
	        //調用方法複製文件  
	        getFileList("F:\\筆記\\第1周\\2.24", "F:\\複製後的文件夾(4.20做業)");  
	    }     
	    /**
	     * 執行復制操做 
	     * @param fromFile 源目錄 
	     * @param endsFile 目標目錄 
	     */  
    private static void getFileList(String fromFile, String endsFile)  
    {  
        File file = null;//先建立一個文件對象(被複制對象)  
        File file1 = null; //被複制的文件 
        FileInputStream fis = null;  
        DataInputStream dis = null;  
   
        File file2 = null;  //做爲複製後文件的暫時緩存
        FileOutputStream fos = null;  
        DataOutputStream dos = null;   
        try {        
            file = new File(fromFile);//建立源文件對象   
            File[] files = file.listFiles();//得到文件列表      
            for (int i = 0; i < files.length; i++){                               
	            if (files[i].isDirectory()){ //判斷是否爲目錄   	              	               
	                File dir = new File(endsFile + "\\" + files[i].getName());  //建立目錄   
	                    dir.mkdir();  //若是是目錄就建立	   
	                    //遞歸上一級目錄
	                getFileList(fromFile + "\\" + files[i].getName(),  
	                		endsFile + "\\" + files[i].getName());  
	            }  
	            else{                
	                //建立源目錄下的文件對象  
	                    file1 = new File(files[i].toString());  
	                    fis = new FileInputStream(file1);  
	                    dis = new DataInputStream(fis);  
	   
	                    //建立目標目錄下的文件對象  
	                file2 = new File(endsFile + "\\" + files[i].getName());  
	                fos = new FileOutputStream(file2);  
	                dos = new DataOutputStream(fos);  
	                int len = 0;  
	                while ((len = dis.read()) != -1){  
	                  
	                    //將源目錄下的文件內容複製到目標目錄下的文件中  
	                    dos.write(len);  
	                }  
	           System.out.println(endsFile + "\\" + files[i].getName());//把複製後的文件名及路徑打印在控制檯上,方便觀察
	            }  
	        }  
    }  
    catch (IOException e){  
    	
    	e.printStackTrace(); 
    }finally{         
    if(fis != null){
    	try {
			fis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
      
    if(dis != null){
    	try {
			dis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
    }  

    }  
}  
相關文章
相關標籤/搜索