運用遞歸思想實現剪切任意文件夾

package cn.itcast.flow;

import java.io.File;

/**
 * @author 王金龍
 * @date 創建時間: 2017-2-17 下午7:52:50
 * @version 1.0
 */
public class Recursion {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//給定對應的源目錄和目標目錄
		File sourceDir=new File("F:\\java電子書");
		File targetFile=new File("E:\\BaiduYunDownload\\");
		cutFile(sourceDir,targetFile);
	}
	//移動一個非空的目錄到另一個地方(剪切)
	public static void cutFile(File sourceDir,File targetFile ){
		if(!sourceDir.exists()||!targetFile.exists()){
			System.out.println("源目錄或者目標目錄不存在!!!請檢查!!!");
			return;
			}
		if(!sourceDir.isDirectory()||!targetFile.isDirectory()){
			System.out.println("源目錄或者目標目錄不是指定的目錄!!!請檢查!!");
			return;
		}
		//獲取源文件夾名字
		String s=sourceDir.getName();
		//在指定路徑下創建一個File文件並且創建對應源文件
		File cfile= new File(targetFile,s);
		cfile.mkdir();
		
		//遍歷源目錄
		File[] files = sourceDir.listFiles();
		for(File file : files){
			if(file.isFile()){
				//調用File類的renameTo方法實現剪切
				file.renameTo(new File(cfile,file.getName()));
			}else if(file.isDirectory()){
				//運用遞歸實現
				cutFile(file,new File(cfile,File.separator));
			}
		}
		//刪除源文件
		sourceDir.delete();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章