简易文件管理器

时间:2021-01-10 21:07:10
package d;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;


import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;


public class Document extends JFrame {
public static void main(String args[]) {
Document document = new Document();
document.Document();


}


boolean flag1 = true;
// 定义复制组件
JLabel jlabel1 = new JLabel("拷贝");
JLabel jlabel2 = new JLabel("源路径");
JLabel jlabel3 = new JLabel("目标路径");
JTextField jtf1 = new JTextField();
JTextField jtf2 = new JTextField();
JButton jb1 = new JButton("选择");
JButton jb2 = new JButton("选择");
JButton jb3 = new JButton("拷贝");


// 定义修改组件
JLabel jlabel4 = new JLabel("修改文件");
JLabel jlabel5 = new JLabel("修改目标");
JLabel jlabel6 = new JLabel("修改内容");
JLabel jlabel7 = new JLabel("→");
JTextField jtf3 = new JTextField();
JTextField jtf4 = new JTextField();
JTextField jtf5 = new JTextField();
JButton jb4 = new JButton("修改");


// 定义删除组件
JLabel jlabel8 = new JLabel("删除文件");
JLabel jlabel9 = new JLabel("删除路径");
JTextField jtf6 = new JTextField();
JButton jb5 = new JButton("选择");
JButton jb6 = new JButton("删除");


// 定义生成组件
JLabel jlabel10 = new JLabel("新建文本");
JLabel jlabel11 = new JLabel("文本保存路径");
JButton jb7 = new JButton("选择");
JTextField jtf7 = new JTextField();
JLabel jlabel12 = new JLabel("文本内容");
JTextField jtf8 = new JTextField();
JButton jb8 = new JButton("生成");


public void Document() {
this.setTitle("简易文件管理器");
this.setLocationRelativeTo(null);
this.setLayout(null);
this.setDefaultCloseOperation(3);
this.setSize(400, 400);


// ****拷贝功能


jlabel1.setBounds(160, 0, 100, 20);
jlabel2.setBounds(20, 22, 40, 30);
jlabel3.setBounds(20, 55, 60, 30);
jtf1.setBounds(80, 22, 140, 30);
jtf2.setBounds(80, 55, 140, 30);
jb1.setBounds(240, 22, 60, 20);
jb2.setBounds(240, 55, 60, 20);
jb3.setBounds(310, 36, 60, 30);
this.add(jb1);
this.add(jb2);
this.add(jb3);
this.add(jtf1);
this.add(jtf2);
this.add(jlabel1);
this.add(jlabel2);
this.add(jlabel3);


// *******修改功能


jlabel4.setBounds(150, 88, 100, 20);
jlabel5.setBounds(20, 112, 60, 30);
jlabel6.setBounds(20, 145, 60, 30);
jlabel7.setBounds(184, 145, 60, 30);
jtf3.setBounds(80, 112, 200, 30);
jtf4.setBounds(80, 145, 100, 30);
jtf5.setBounds(200, 145, 100, 30);
jb4.setBounds(310, 120, 60, 30);
this.add(jlabel4);
this.add(jlabel5);
this.add(jlabel6);
this.add(jlabel7);
this.add(jb4);
this.add(jtf3);
this.add(jtf4);
this.add(jtf5);


// ****文件删除
jlabel8.setBounds(150, 178, 100, 20);
jlabel9.setBounds(20, 203, 60, 30);
jtf6.setBounds(80, 203, 170, 30);
jb5.setBounds(258, 203, 60, 30);
jb6.setBounds(320, 203, 60, 30);
this.add(jb5);
this.add(jb6);
this.add(jlabel8);
this.add(jlabel9);
this.add(jtf6);


// ****添加文本


jlabel10.setBounds(150, 236, 100, 20);
jlabel11.setBounds(20, 258, 90, 30);
jtf7.setBounds(100, 258, 170, 30);
jb7.setBounds(290, 258, 60, 30);
jlabel12.setBounds(20, 292, 60, 30);
jtf8.setBounds(75, 292, 290, 30);
jb8.setBounds(150, 325, 60, 30);
this.add(jb7);
this.add(jb8);
this.add(jtf7);
this.add(jtf8);
this.add(jlabel10);
this.add(jlabel11);
this.add(jlabel12);


this.setVisible(true);
addListenr();
}


void addListenr() {
// 选择拷贝文件
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 创建文件选择器
JFileChooser jfc = new JFileChooser();
// 设置文件过滤器
jfc.setFileFilter(new FileNameExtensionFilter("文本格式 - txt", "txt"));
// 设置可选择文件或文件夹
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
// 绑定按钮
jfc.showDialog(null, "选择");
// 暂存选择好的文件
File selectedFile = jfc.getSelectedFile();
// 如果有选择文件或文件夹,显示到栏里
if (selectedFile != null) {
jtf1.setText(selectedFile.getPath());
}
}
});
// 选择拷贝目的
jb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 创建文件选择器
JFileChooser jfc = new JFileChooser();
// 设置文件过滤器
jfc.setFileFilter(new FileNameExtensionFilter("文本格式 - txt", "txt"));
// 设置可选择文件或文件夹
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
// 绑定按钮
jfc.showDialog(null, "选择");
// 暂存选择好的文件
File selectedFile = jfc.getSelectedFile();
// 如果有选择文件或文件夹,显示到栏里
if (selectedFile != null) {
jtf2.setText(selectedFile.getPath());
}
}
});
// 拷贝按钮
jb3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jtf1.getText() != null && jtf2.getText() != null)
if ((new File(jtf2.getText())).isFile()) {
copy(jtf1.getText(), jtf2.getText());
} else if ((new File(jtf2.getText())).isDirectory()) {
copy(jtf1.getText(), jtf2.getText() + "\\" + (new File(jtf1.getText())).getName());
}


}
});


// 修改按钮
jb4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jlabel5.getText() != null && (new File(jlabel5.getText())).exists()) {
if (jlabel6 != null) {


}
}


}
});


// 选择删除文件
jb5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 创建文件选择器
JFileChooser jfc = new JFileChooser();
// 设置可选择文件或文件夹
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
// 绑定按钮
jfc.showDialog(null, "选择");
// 暂存选择好的文件
File selectedFile = jfc.getSelectedFile();
// 如果有选择文件或文件夹,显示到栏里
if (selectedFile != null) {
jtf5.setText(selectedFile.getPath());
}


}
});


// 删除按钮
jb6.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
File f = new File(jtf5.getText());
delete(f);
flag1 = true;
}


public void delete(File f) {
if (f != null && f.exists())// 判断是否存在
{
if (f.isDirectory())// 判断是否文件夹
{
File[] list = f.listFiles();// 获取子目录列表
if (list.length != 0)// 如果子目录不为空,需要先删除子目录
{
for (int i = 0; i < list.length; i++) {
// 获取子目录文件
File file = list[i];
// 递归
delete(file);
}
f.delete();
if (flag1) {
flag1 = false;
JOptionPane.showMessageDialog(null, "文件已经删除", "提示", 1);
}
} else // 已经是空文件夹了,自己删除自身
{
f.delete();
if (flag1) {
flag1 = false;
JOptionPane.showMessageDialog(null, "文件已经删除", "提示", 1);
}
}
} else// 不是文件夹而是文件,自己删除
{
f.delete();
if (flag1) {
flag1 = false;
JOptionPane.showMessageDialog(null, "文件已经删除", "提示", 1);
}
}
if (flag1) {
flag1 = false;
JOptionPane.showMessageDialog(null, "文件已经删除", "提示", 1);
}
} else {
JOptionPane.showMessageDialog(null, "文件不存在", "提示", 1);
}
}
});


jb7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jtf3.getText() == null) {


}
}
});
}


void copy(String orgin, String aim) {
try {
FileInputStream fis = new FileInputStream(orgin);
FileOutputStream fos = new FileOutputStream(aim);
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int data = bis.read();


while (data != -1) {
bos.write(data);
data = bis.read();
}
bis.close();
bos.close();
fis.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}


}
}