黑马程序员——Java中文件夹的复制(第11篇)

本文提供了一个使用Java实现文件夹及其内容复制的例子。通过递归方式处理子文件夹及文件,展示了如何创建目标文件夹并复制源文件夹中的所有内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

//关于Java中文件夹的复制和递归的应用的小例子

import java.io.*;
class CopyWenJianJia
{
	public static void main(String[] args)throws Exception
	{
		//源文件夹
		String yuan = "C:\\nimeizide";
		//目的地
		String mudi = "D:\\nimeizide";
		//建立目标文件夹
		(new File(mudi)).mkdirs();
		//获取源文件夹当下的文件或目录
		File[] files = (new File(yuan)).listFiles();
		for(File file : files)
		{
			if(file.isDirectory())
			{
				String yuanDir = yuan + "\\" + file.getName();
				String mudiDir = mudi + "\\" + file.getName();
				//复制目录
				copyDir(yuanDir, mudiDir);
			}
			else
			{
				copyFile(file, new File(mudi + "\\" + file.getName()));
			}
		}

	}
	public static void copyDir(String yuanDir, String mudiDir)throws Exception
	{
		(new File(mudiDir)).mkdirs();
		File[] files = (new File(yuanDir)).listFiles();
		for(File file : files)
		{
			if(file.isFile())
			{
				File yuanFile = file;//源文件
				File mudiFile = new File(new File(mudiDir).getAbsolutePath() + "\\" + file.getName());
				copyFile(yuanFile, mudiFile);
			}
			else
			{
				String yuanJia = yuanDir + "\\" + file.getName();
				String mudiJia = mudiDir + "\\" + file.getName();
				copyDir(yuanJia, mudiJia);
			}
		}
	}
	public static void copyFile(File yuanFile, File mudiFile)throws Exception
	{
		BufferedInputStream buis = new BufferedInputStream(new FileInputStream(yuanFile.getAbsoluteFile()));
		BufferedOutputStream buos = new BufferedOutputStream(new FileOutputStream(mudiFile.getAbsoluteFile()));
		byte[] buf = new byte[1024];
		int len;
		while((len = buis.read(buf)) != -1)
		{
			buos.write(buf, 0, len);
			buos.flush();
		}
		buis.close();
		buos.close();
	}

}

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值