java 拷贝文件夹

package util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * 文件操作助手类
 * @author Administrator
 *
 */
public class FileUtils {
	/**
	 * 拷贝文件或文件夹
	 */
	public static void copy(File from, File to){
		if(from.isDirectory()){
			//拷贝文件夹
			if(!to.exists())
				to.mkdirs();
			File[] children = from.listFiles();
			for(File f : children){
				String path = to.getAbsolutePath() + "/" + f.getName();
				copy(f, new File(path));
			}
		}else{
			//文件
			try {
				InputStream is = new FileInputStream(from);
				OutputStream os = new FileOutputStream(to);
				byte[] bts = new byte[2048];
				int len = is.read(bts);
				while(len > 0){
					os.write(bts, 0, len);
					len = is.read(bts);
				}
				is.close();
				os.close();
				System.out.println("已拷贝文件:" + to.getAbsolutePath());
			} catch (Exception e) {
				throw new RuntimeException("将文件" + from.getAbsolutePath() + "拷到" + to.getAbsolutePath() + "失败!", e);
			}
		}
	}
}


 

以下是使用Java的方法来拷贝文件夹的示例代码: ```java import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class FolderCopyExample { public static void main(String[] args) { // 源文件夹路径 String sourceFolder = "C:\\Users\\username\\sourceFolder"; // 目标文件夹路径 String targetFolder = "C:\\Users\\username\\targetFolder"; try { // 创建目标文件夹 Path targetPath = Paths.get(targetFolder); if (!Files.exists(targetPath)) { Files.createDirectories(targetPath); } // 拷贝文件夹 Path sourcePath = Paths.get(sourceFolder); Files.walk(sourcePath).forEach(source -> { Path target = targetPath.resolve(sourcePath.relativize(source)); try { Files.copy(source, target); } catch (IOException e) { System.err.println("Failed to copy " + source + " to " + target + ": " + e.getMessage()); } }); System.out.println("Folder copied successfully."); } catch (IOException e) { System.err.println("Failed to copy folder: " + e.getMessage()); } } } ``` 在此示例中,我们使用Java的Path和Files类来遍历源文件夹中的所有文件和子文件夹,并将它们复制到目标文件夹中。我们还使用Files.createDirectories()方法创建目标文件夹。 这是一个简单的方法,可以在大多数情况下很好地工作,但在处理大型文件夹时可能会遇到性能问题。在这种情况下,您可能需要使用更高级的技术,如多线程处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值