java 复制文件和文件夹中目标路径不存在

复制文件

学习IO过程中,尝试写复制文件和复制夹的函数代码,一开始只考虑到目标文件destFile是否存在,于是就使用了输入流FileOutputStream在目标文件不存在的情况下可以自动创建该文件
代码:

public static void copyFile(String srcFile, String destFile){
	File src = new File(srcFile);
	File dest = new File(destFile);
	try(FileInputStream fsrc=new FileInputStream(src);FileOutputStream fdest=new FileOutputStream(dest)){
		byte all[]=new byte[(int)src.length()];
		fsrc.read(all);
		fdest.write(all);
	}catch(IOException e) {
		e.printStackTrace();
	}
}

测试过程中发现了如果目标文件的父路径错误则会导致出错,就要加入判断父路径是否存在:

if(!dest.exists()) {
	dest.getParentFile().mkdirs();
	try{
		dest.createNewFile();
	}
	catch(IOException e) {
		e.printStackTrace();
	}
}

dest.exists()检测文件是否存在,然后由dest.getParentFile().mkdirs()创建目标文件的文件夹,dest.createNewFile()会直接创建该目标文件(这里的creatNewFile()我后面又感觉有FileOutputStream()存在其实可以直接省去)

复制文件夹

代码:

public static void copyFolder(String srcFolder, String destFolder){
	File src = new File(srcFolder);
	//验证是否存在这个这个路径,如果不存在就创建该路径
	File dest = new File(destFolder);
	if(!dest.exists() && !dest.isDirectory()) {
		dest.mkdirs();
	}
	
	File list[]=src.listFiles();
	String Fname[]=src.list();
	for(int i=0;i<list.length;i++) {
		copyFile(list[i].getAbsolutePath(), destFolder+"/"+Fname[i]);
	}
}

创建文件夹与创建文件类似,要通过exists()来判断目标路径是否存在,再创建该路径,后面就正常遍历了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值