今天有朋友问我这个问题,以前学的时候貌似也没写过,所以试试刀,看快不快落。
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中,可以使用QDir类来操作文件夹,例如创建、删除、复制文件夹等。为了实现文件夹的复制,可以使用递归函数qCopyDirectory,该函数将源文件夹的所有文件和子文件夹复制到目标文件夹中。 函数qCopyDirectory的...
1,填写需要复制的文件夹或文件 2,填写需要复制进去的路径,一行... 1,被复制文件夹 不能放桌面。因为我们的程序以精简为目的,不会获取更多权限。所以只能放非桌面 敏感路径 2,需要复制进去的路径必须以\ 为结尾
2. **安全存储**:加密后的文件夹会被保存在一个安全的容器中,无法被未经授权的用户访问,即使文件被复制到其他设备,没有密码也无法打开。 3. **隐藏功能**:某些加密小程序还提供文件夹隐藏功能,使得加密的...
在C#编程中,复制文件夹到目标位置是一项常见的任务,尤其在系统迁移、备份或者部署应用程序时。本文将深入探讨如何使用C#实现这一功能,以及涉及的相关知识点。 首先,我们要了解C#中处理文件和目录的基本类,如`...
复制文件夹" Click="OnCopyFolderButtonClick" /> ``` ```csharp private void OnCopyFolderButtonClick(object sender, RoutedEventArgs e) { string sourceFolder = "C:\\源文件夹路径"; string destination...
"批量复制文件夹工具"就是这样的一个实用软件,它允许用户一次性处理多个文件夹和文件,将它们复制到不同的目标位置,大大减少了手动操作的时间和繁琐程度。在本文中,我们将深入探讨批量复制文件夹的相关知识点,...
3. **复制文件夹**:在VBS中,要复制一个网络共享的文件夹到本地,首先需要创建一个FSO实例,然后调用`CopyFolder`方法,传入源文件夹和目标文件夹的路径。 4. **快捷方式**:快捷方式是Windows操作系统中的一种...
首先,复制文件夹在编程中是一项基本操作,它涉及到文件系统管理和文件操作的知识。易语言提供了丰富的内置命令和函数来处理这类任务。例如,你可以使用“文件操作”类中的“复制文件”和“复制文件夹”命令来实现...
以上就是使用C语言在Linux环境下复制文件夹的基本步骤和技术要点。实际编写时,应考虑更多细节,如错误处理、性能优化等。在实际项目中,你可能会使用更高级的库,如Glib或POSIX的`cp`命令源码,以获取更完善的功能...
批量处理文件和文件夹的命名或复制等任务,能够极大地提高工作效率,特别是在处理大量数据时。本文将详细介绍"文件夹、文件名批量复制"这一实用工具及其相关知识点。 批量复制,顾名思义,是指一次性处理多个文件或...
3. **递归复制文件夹**:当需要复制一个文件夹及其所有子文件夹和文件时,我们会使用递归方法。基本步骤如下: - 检查是否为文件夹:使用`File.isDirectory()`方法判断。 - 创建目标文件夹:如果目标路径不存在,...
本文将深入讲解如何在易语言中实现"进度显示复制文件夹"的功能,这对于创建用户友好的应用程序至关重要。 首先,我们要明白“进度显示”是指在执行耗时操作(如复制文件夹)时,提供一个可视化的进度条,让用户了解...
在Ruby编程语言中,复制文件夹是一个常见的任务,特别是在处理文件系统操作时。...了解这些方法后,你可以在Ruby程序中根据需求选择合适的方式来复制文件夹。在进行文件操作时,务必谨慎处理,避免误删或覆盖重要数据。
文件夹复制的实现则更加复杂,这里定义了一个名为`qCopyDirectory`的函数,它负责递归地复制文件夹中的所有内容,包括子文件夹和文件。 此函数接收四个参数:源目录`fromDir`、目标目录`toDir`、一个布尔值`...
2. 重命名+复制:另一种方法是先复制文件夹,然后删除原文件夹,但这种方法可能在大文件夹或网络环境下效率较低。 四、文件夹删除 1. RemoveDirectory函数:适用于空文件夹的删除。若文件夹非空,需要先删除或移动...
批处理复制文件夹是一种在Windows操作系统中批量处理文件和文件夹的方法,主要通过编写批处理脚本来实现。本文将深入探讨批处理的概念、用途、如何创建及使用批处理脚本,以及如何复制文件夹。 批处理(Batch ...
这时,可以使用批处理脚本(如Windows的.bat文件)或脚本语言(如Python、bash)编写程序,实现定时任务或条件触发的复制动作。 总的来说,“文件复制”和“文件夹复制”是计算机操作中的基础操作,而选择合适的...