import java.io.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class CopyFiles extends JFrame implements ActionListener,Runnable{
public static void main(String[] args) {
CopyFiles cf=new CopyFiles();
}
JTextField tx1=new JTextField();
JTextField tx2=new JTextField();
JTextArea ta=new JTextArea();
CopyFiles(){
JFrame w=new JFrame();
w.setSize(450,500);
w.setLocationRelativeTo(null);
JLabel l1=new JLabel("源目录:");
JLabel l2=new JLabel("目标目录:");
JButton b1=new JButton("源目录");
JButton b2=new JButton("目标目录");
JScrollPane sp=new JScrollPane(ta);
JButton b3=new JButton("复制");
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(2,3));
p1.add(l1);
p1.add(tx1);
p1.add(b1);
p1.add(l2);
p1.add(tx2);
p1.add(b2);
w.setLayout(new BorderLayout());
w.add(p1,BorderLayout.NORTH);
w.add(sp,BorderLayout.CENTER);
w.add(b3,BorderLayout.SOUTH);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
w.setVisible(true);
}
@Override
public void run() {
copy(new File(tx1.getText()),new File(tx2.getText()));
}
public void copy(File f,File t){
String newDir=t.getPath()+"\\"+f.getName();
ta.append("正在创建目录"+newDir+"...\n");
File newDirFile=new File(newDir);
newDirFile.mkdir();
File sub[]=f.listFiles();
for(File s:sub){
if(s.isDirectory()){
copy(s,newDirFile);
}
if(s.isFile()){
ta.append("正在复制文件"+s+"...\n");
copyFile(s,new File(newDir+"/"+s.getName()));
}
}
}
public void copyFile(File from,File to){
try{
FileInputStream fis=new FileInputStream(from);
FileOutputStream fos=new FileOutputStream(to);
byte[] tmp=new byte[8192];
int len=fis.available()/8192;
for(int i=0;i<len;i++){
fis.read(tmp);
fos.write(tmp);
}
int size=fis.read(tmp);
fos.write(tmp,0,size);
fos.close();
}catch(Exception e){}
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("源目录")){
JFileChooser jc=new JFileChooser();
jc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jc.showOpenDialog(this);
File choosefile=jc.getSelectedFile();
if(choosefile.exists())
tx1.setText(choosefile.getPath());
}
if(e.getActionCommand().equals("目标目录")){
JFileChooser jc=new JFileChooser();
jc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jc.showOpenDialog(this);
File choosefile=jc.getSelectedFile();
if(choosefile.exists())
tx2.setText(choosefile.getPath());
}
if(e.getActionCommand().equals("复制")){
Thread t=new Thread(this);
t.start();
}
}
}
分享到:
相关推荐
以上就是使用Java复制指定目录下文件的基本方法,无论是使用传统的`java.io`还是现代化的`java.nio.file`,都可以有效地完成这项任务。在实际应用中,还需要注意错误处理和异常捕获,确保程序的健壮性。例如,确保...
在Java编程语言中,复制一个目录下的所有文件到另一个目录是一项常见的任务,特别是在处理文件系统操作时。这个过程涉及到文件的遍历、读取和写入。以下将详细讲解如何实现这一功能,以及相关的Java API和技术点。 ...
这个任务涉及到递归地复制整个目录结构,包括所有子目录和它们包含的文件。以下是一个详细的知识点解析,教你如何用Java实现这个功能。 首先,我们需要了解Java中的`java.io`包,它提供了大量的类用于进行文件和流...
本文将深入探讨如何使用Java实现文件及其目录结构的完整复制。 #### 一、基础知识回顾 在进行文件复制之前,我们先回顾一下Java中处理文件的基本概念: 1. **`java.io.File`**:用于表示文件或目录路径,可以获取...
根据提供的文件标题、描述、标签以及部分内容,我们可以总结出与“Java复制文件代码”相关的重要知识点。虽然提供的代码片段存在一些未完成的部分和注释掉的代码,但是我们仍然可以从中提取有价值的信息,并且深入...
### 文件及文件夹的复制Java代码解析 #### 一、概述 在Java编程中,文件及文件夹的复制是一项常见的需求。本篇文章将基于提供的Java代码样例来深入解析如何在Java中实现文件及文件夹的复制功能。这段代码通过递归...
本文将深入探讨如何使用Java实现文件的复制,包括单个文件的复制和整个文件夹及其子文件的复制。 首先,我们来看一个简单的Java程序,用于复制单个文件。这个例子中,我们将使用`java.io`包中的`...
复制整个文件夹内容(包含子文件夹中的所有内容) 5. 新建目录 6. 新建文件 7. 移动文件或文件夹 8. 重命名文件/文件夹 9. 查看指定路径下的所有文件的全路径 10. 查看指定路径下的所有文件 11. 列出...
在Java编程中,目录复制是一项常见的任务,尤其是在文件系统操作或者数据备份的场景下。本篇文章将详细讲解如何编写一个Java应用程序,实现将一个包含多个子目录和文件的目录复制到另一个指定的目录下的功能。 首先...
如果需要复制整个目录结构,可以使用`java.nio.file`包中的`Files`和`Path`类,如下所示: ```java import java.io.IOException; import java.nio.file.*; public class DirectoryCopy { public static void copy...
在Java编程语言中,文件复制是一项常见的任务,用于在不同位置之间移动或备份数据。本文将详细介绍如何在Java中实现文件复制,同时考虑到输入输出异常处理,并在DOS控制台环境中运行程序。 首先,我们需要创建一个...
如果源文件夹中包含嵌套的子文件夹,这种方法可能无法正确地复制整个文件结构。为了完全复制包括所有层级的文件夹,你需要在`copyDirectiory`方法中递归地处理每一个子文件夹,确保所有嵌套的文件和子文件夹都被处理...
### Java新建目录、新建文件、删除文件、删除文件夹、删除文件夹里面的所有文件、复制整个文件夹内容 本文档将详细介绍如何在Java中执行以下操作:新建目录、新建文件、删除文件、删除文件夹、删除文件夹内所有文件...
- 将新的文件或目录复制到解压缩后的目录。 - 再次调用`ZipUtil.zip`,这次传入解压缩后的目录和目标ZIP文件的路径,这将重新压缩整个目录并覆盖原有的ZIP文件。 5. **注意点**: - 为了保证操作的原子性,可以...
`deleteDirectory`方法用于递归删除整个目录及其包含的所有子目录和文件。首先检查是否为目录,然后获取目录中的所有子项,对每个子项调用`deleteDirectory`方法,最后删除当前目录。 这些方法提供了一套基本的...
在Java编程中,复制整个目录包括其子目录和文件是一项常见的任务。这涉及到对文件系统进行操作,并且需要处理各种情况,比如递归地遍历目录结构、处理不同类型的文件以及确保数据完整无误地复制。以下是一个详细的...
总的来说,这个压缩包里的Java程序可能是一个实用工具,用于高效且方便地复制整个目录结构,同时提供可视化的输出反馈。理解并运用这些Java文件操作的原理,对于进行文件系统操作的开发者来说是非常重要的。
在Java编程中,文件操作是常见的任务之一,包括文件的复制和删除。在这个场景中,我们看到一个名为"OperateFile"的压缩包文件,它很可能包含了一个Java类或者一个项目,用于演示如何使用Java来执行这些操作。下面将...
复制整个文件夹需要递归地遍历文件夹内的所有文件和子文件夹。以下是一个简单的实现: ```java public static boolean copyDirectory(File sourceDir, File destDir) { if (!sourceDir.exists() || !sourceDir....