import java.io.*;
/**
* 复制文件夹或文件夹
*/
public class CopyDirectory {
// 源文件夹
static String url1 = "E:/工作空间/j2seworkspace/reportxml/src/resource";
// 目标文件夹
static String url2 = "D:/report";
public static void main(String args[]) throws IOException {
// 创建目标文件夹
(new File(url2)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(url1)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 复制文件
copyFile(file[i], new File(url2 +"/" + file[i].getName()));
}
if (file[i].isDirectory()) {
// 复制目录
String sourceDir = url1 + File.separator + file[i].getName();
String targetDir = url2 + File.separator + file[i].getName();
copyDirectiory(sourceDir, targetDir);
}
}
}
// 复制文件
public static void copyFile(File sourceFile, File targetFile)
throws IOException {
// 新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff = new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff = new BufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len = inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
// 关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
// 复制文件夹
public static void copyDirectiory(String sourceDir, String targetDir)
throws IOException {
// 新建目标目录
(new File(targetDir)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 源文件
File sourceFile = file[i];
// 目标文件
File targetFile = new File(new File(targetDir)
.getAbsolutePath()
+ File.separator + file[i].getName());
copyFile(sourceFile, targetFile);
}
if (file[i].isDirectory()) {
// 准备复制的源文件夹
String dir1 = sourceDir + "/" + file[i].getName();
// 准备复制的目标文件夹
String dir2 = targetDir + "/" + file[i].getName();
copyDirectiory(dir1, dir2);
}
}
}
}
分享到:
相关推荐
"根据路径名,拷贝文件或者文件夹"这个主题涉及到了计算机操作系统中的文件系统管理和复制命令。下面将详细阐述相关知识点。 首先,路径名在计算机中是一个字符串,它提供了从根目录开始到达特定文件或文件夹的路径...
在IT领域,文件和文件夹的拷贝是日常操作中不可或缺的部分,无论是用户在操作系统中进行简单的复制粘贴,还是开发者在程序设计中实现文件的迁移或备份。本项目是用C语言编写的一个文件夹拷贝工具,它已经在Visual ...
在这个特定的场景中,`subprocess`被用来执行SCP命令以拷贝文件或文件夹到远程主机的指定目录。 首先,我们需要理解脚本中的关键函数`scpFileToRemoteNode()`。这个函数接受五个参数:用户名(user)、IP地址(ip)...
在开发过程中,我们经常需要拷贝文件或者文件夹。拷贝文件夹涉及到对文件夹结构以及子目录中的所有文件进行复制。C#中可以通过递归函数来实现这一功能。以下是实现拷贝整个文件夹及其子目录和文件的相关知识点。 ...
标题中的"pb9运行环境【拷贝到执行文件夹中】"指的是PowerBuilder 9(PB9)的应用程序运行环境。PowerBuilder是一款流行的可视化开发工具,主要用于构建企业级的数据库应用程序。这个运行环境包含了PB9应用程序运行...
下面我们将详细介绍如何创建一个批处理文件来完成文件夹的拷贝: 1. **创建批处理文件**: 首先,我们需要创建一个文本文件,例如`copy.bat`,使用记事本或其他文本编辑器打开,然后输入以下内容: ```batch @...
首先,拷贝文件到指定文件夹的基本方法是使用`shutil`库,它是Python标准库的一部分,提供了高级文件和文件集合操作。下面是一个简单的例子: ```python import shutil def copy_file(src_file, dest_folder): ...
在JavaScript中实现文件拷贝是一项常见的任务,尤其是在前端开发中,比如在拖放操作、文件上传或者本地数据备份等场景。下面将详细讲解如何利用JavaScript实现文件或文件夹的遍历与复制。 首先,理解JavaScript在...
在本文中,我们将探讨如何使用QT框架实现文件和文件夹的复制粘贴操作。QT是一个跨平台的C++库,广泛用于开发图形用户界面应用程序,以及编写各种非GUI程序,如工具和服务器。 ### 文件复制 在文件复制操作中,首先...
通过将常量转换为数组,我们可以遍历这些文件夹并进行操作,比如这里所说的拷贝文件。 然后,"通过随机数字的产生"可能涉及到TCL的随机数生成函数,如`expr {rand()}`。生成的随机数可以用于选择数组中的某个特定...
要拷贝文件的修改时间 >= 当前时间+n天 (n为具体天数可以为负或者为正,当n为负是指当前时间以前的时间,当n为正是指当前时间以后的时间)。 拷贝完成后,在命令行会提示复制了哪些文件。
这种需求常见于备份系统、文件同步服务或者数据迁移工具等场景。本文将详细介绍如何使用C#来实现文件夹及其子文件夹和文件的完整复制,并探讨其背后的实现原理。 #### 一、基础知识概述 在深入探讨具体的代码实现...
下面我们将深入探讨这个工具的工作原理、使用方法以及批量拷贝文件在实际工作中的应用。 批量拷贝文件通常涉及到编程或脚本语言,如Python、批处理(Batch)或Shell脚本等,通过编写自动化脚本来执行重复的文件操作。...
- `SSH命令行工具`:如`scp`命令,利用SSH加密通道安全地拷贝文件。 - `持续集成/持续部署(CI/CD)工具`:如Jenkins、Travis CI等,自动执行构建、测试和部署流程,包括文件的上传。 4. **`copyTest.js`**:这个...
通过以上分析,我们不仅了解了如何使用C#来判断一个文件夹内是否存在子文件夹或文件,还深入探讨了目录拷贝与删除的具体实现方式。这些知识点对于处理文件系统相关的任务非常有用,能够帮助开发者更加高效地管理文件...
批处理拷贝文件是一种在Windows操作系统中通过编写批处理脚本来实现批量复制文件或文件夹的方法,这种方法简单高效,尤其适合需要重复执行相同复制任务的情况。在这个实例中,我们有一个批处理文件`copy.bat`,它被...
在实际项目中,你可能还需要处理一些异常情况,比如文件正在被使用无法复制,或者磁盘空间不足等问题。你还可以添加进度条或通知来提升用户体验,显示复制进度或错误信息。 至于提供的`HyteraAutoTools`这个文件,...
1. **获取源文件路径**:配置文件可能存储在项目资源中,如`Resources`文件夹,或者在程序外部的某个路径。如果是资源文件,我们需要使用`Application.GetResourceStream`方法来获取流,并将其保存到磁盘上临时生成...
采用线程方式通过进度条显示拷贝文件或者文件夹。由于进度条控件可能为第三方控件,该控件显示进度可以由TCopyThreadEx重新申明进度条为何种进度条(也就是非Delphi自带的默认进度条),申明方法具体参阅基类...
描述中的"abc"可能是待复制文件的一部分名称或者代表一个文件夹。如果"abc"代表文件夹,那么你需要遍历该文件夹下的所有文件和子文件夹,并对每个文件执行上述步骤。这涉及到目录枚举和递归调用,可以使用CFileFind...