`
brofe
  • 浏览: 233497 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

复制文件夹程序

    博客分类:
  • Java
阅读更多
今天有朋友问我这个问题,以前学的时候貌似也没写过,所以试试刀,看快不快落。


package com.brofe.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 复制文件夹
 * 
 * @author brofe@163.com
 * @since 2009/06/11
 */
public class CopyDirUtil {
	
	private CopyDirUtil() {}
	
	/**
	 * 复制文件夹
	 * 
	 * @param srcDir 需要复制的文件夹路径
	 * @param destDir 复制到的目标文件夹路径
	 */
	public static void copy (final String srcDir, final String destDir) throws Exception {
		File src = null;
		File dest = null;
		
		try {
			src = new File(srcDir);
			if (!src.exists()) {
				throw new NullPointerException("需要复制的文件夹不存在");
			}
			dest = new File(destDir);
			if (!dest.exists()) {
				dest.mkdir(); // 只有第一次才会执行
			}
			
			File[] srcs = src.listFiles();
			for (File file : srcs) {
				if (!file.isDirectory()) { // 如果是文件
					copyFile(file.toString(), destDir + File.separator + file.getName());
				} else { // 如果是目录
					copy(file.getPath(), destDir + File.separator + file.getName());
				}
			}
			
		} catch (Exception e) {
			throw new Exception("copy dir error...");
		} 
	}
	
	/**
	 * 复制单个文件的工具文法
	 * @param srcFilePath
	 * @param destFilePath
	 * @throws IOException
	 */
	private static void copyFile (String srcFilePath, String destFilePath) throws IOException {
		FileInputStream fis = null;
		FileOutputStream fos = null;
		byte[] buffer = null;
		try {
			fis = new FileInputStream(srcFilePath);
			fos = new FileOutputStream(destFilePath);
			buffer = new byte[1024];
			int count = 0;
			while ((count = fis.read(buffer)) != -1) {
				fos.write(buffer, 0, buffer.length);
			}
		} finally {
			if (fis != null)
				fis.close();
			if (fos != null) 
				fos.close();
			if (buffer != null) 
				buffer = null;
		}
	}
	
	public static void main(String[] args) throws Exception {
		CopyDirUtil.copy("e:\\oldpath", "e:\\newpath");
	}
	
}

分享到:
评论

相关推荐

    递归删除,复制文件夹

    在给定的压缩包文件`RecursiveBrowseFolder`中,可能包含一个示例程序或代码库,演示如何实现上述的递归删除和复制文件夹功能。这个程序可能提供一个接口或函数,用户可以通过指定源文件夹和目标文件夹来执行递归...

    QT实现文件夹和文件的复制粘贴.docx

    在QT中,可以使用QDir类来操作文件夹,例如创建、删除、复制文件夹等。为了实现文件夹的复制,可以使用递归函数qCopyDirectory,该函数将源文件夹的所有文件和子文件夹复制到目标文件夹中。 函数qCopyDirectory的...

    批量复制文件夹或文件 程序工具下载

    1,填写需要复制的文件夹或文件 2,填写需要复制进去的路径,一行... 1,被复制文件夹 不能放桌面。因为我们的程序以精简为目的,不会获取更多权限。所以只能放非桌面 敏感路径 2,需要复制进去的路径必须以\ 为结尾

    文件夹加密小程序文件夹加密小程序

    2. **安全存储**:加密后的文件夹会被保存在一个安全的容器中,无法被未经授权的用户访问,即使文件被复制到其他设备,没有密码也无法打开。 3. **隐藏功能**:某些加密小程序还提供文件夹隐藏功能,使得加密的...

    C# 复制文件夹到目标位置

    在C#编程中,复制文件夹到目标位置是一项常见的任务,尤其在系统迁移、备份或者部署应用程序时。本文将深入探讨如何使用C#实现这一功能,以及涉及的相关知识点。 首先,我们要了解C#中处理文件和目录的基本类,如`...

    WPF C# 文件夹复制,文件复制

    复制文件夹" Click="OnCopyFolderButtonClick" /> ``` ```csharp private void OnCopyFolderButtonClick(object sender, RoutedEventArgs e) { string sourceFolder = "C:\\源文件夹路径"; string destination...

    批量复制文件夹工具,非常好用

    "批量复制文件夹工具"就是这样的一个实用软件,它允许用户一次性处理多个文件夹和文件,将它们复制到不同的目标位置,大大减少了手动操作的时间和繁琐程度。在本文中,我们将深入探讨批量复制文件夹的相关知识点,...

    VBS复制一个文件夹到本地,并在桌面建立快捷方式

    3. **复制文件夹**:在VBS中,要复制一个网络共享的文件夹到本地,首先需要创建一个FSO实例,然后调用`CopyFolder`方法,传入源文件夹和目标文件夹的路径。 4. **快捷方式**:快捷方式是Windows操作系统中的一种...

    易语言复制传送文件夹

    首先,复制文件夹在编程中是一项基本操作,它涉及到文件系统管理和文件操作的知识。易语言提供了丰富的内置命令和函数来处理这类任务。例如,你可以使用“文件操作”类中的“复制文件”和“复制文件夹”命令来实现...

    linux C语言 文件夹复制

    以上就是使用C语言在Linux环境下复制文件夹的基本步骤和技术要点。实际编写时,应考虑更多细节,如错误处理、性能优化等。在实际项目中,你可能会使用更高级的库,如Glib或POSIX的`cp`命令源码,以获取更完善的功能...

    文件夹、文件名批量复制

    批量处理文件和文件夹的命名或复制等任务,能够极大地提高工作效率,特别是在处理大量数据时。本文将详细介绍"文件夹、文件名批量复制"这一实用工具及其相关知识点。 批量复制,顾名思义,是指一次性处理多个文件或...

    java文件夹及文件复制

    3. **递归复制文件夹**:当需要复制一个文件夹及其所有子文件夹和文件时,我们会使用递归方法。基本步骤如下: - 检查是否为文件夹:使用`File.isDirectory()`方法判断。 - 创建目标文件夹:如果目标路径不存在,...

    易语言进度显示复制文件夹

    本文将深入讲解如何在易语言中实现"进度显示复制文件夹"的功能,这对于创建用户友好的应用程序至关重要。 首先,我们要明白“进度显示”是指在执行耗时操作(如复制文件夹)时,提供一个可视化的进度条,让用户了解...

    ruby复制文件夹

    在Ruby编程语言中,复制文件夹是一个常见的任务,特别是在处理文件系统操作时。...了解这些方法后,你可以在Ruby程序中根据需求选择合适的方式来复制文件夹。在进行文件操作时,务必谨慎处理,避免误删或覆盖重要数据。

    QT实现文件和文件夹的复制粘贴.pdf

    文件夹复制的实现则更加复杂,这里定义了一个名为`qCopyDirectory`的函数,它负责递归地复制文件夹中的所有内容,包括子文件夹和文件。 此函数接收四个参数:源目录`fromDir`、目标目录`toDir`、一个布尔值`...

    vc 文件夹的复制,移动,删除

    2. 重命名+复制:另一种方法是先复制文件夹,然后删除原文件夹,但这种方法可能在大文件夹或网络环境下效率较低。 四、文件夹删除 1. RemoveDirectory函数:适用于空文件夹的删除。若文件夹非空,需要先删除或移动...

    批处理复制文件夹.zip

    批处理复制文件夹是一种在Windows操作系统中批量处理文件和文件夹的方法,主要通过编写批处理脚本来实现。本文将深入探讨批处理的概念、用途、如何创建及使用批处理脚本,以及如何复制文件夹。 批处理(Batch ...

    文件夹复制、文件复制工具

    这时,可以使用批处理脚本(如Windows的.bat文件)或脚本语言(如Python、bash)编写程序,实现定时任务或条件触发的复制动作。 总的来说,“文件复制”和“文件夹复制”是计算机操作中的基础操作,而选择合适的...

Global site tag (gtag.js) - Google Analytics