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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值