运用递归思想实现剪切任意文件夹

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();
	}
}

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