Java自制简单的文件检索工具,待完善

链接:https://pan.baidu.com/s/1m0hi2O8iW9_NJF47N-Qu8Q
提取码:8hx1

package test;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class FindFile {
public static Long count = 0L;

public static void main(String[] args) {

final JFrame jf = new JFrame();
JPanel jp = new JPanel();
final TextField tfFilePath = new TextField(55);
tfFilePath.setSize(400, 25);
final TextField text1 = new TextField(20);// 文件
final TextField text2 = new TextField(20);// 后缀
Label label1 = new Label("文件名");
Label label2 = new Label("文件后缀");
Button button = new Button("检索");
Button btnSelect = new Button("打开");
final JFileChooser jfc = new JFileChooser();
final TextArea textArea = new TextArea();
textArea.setSize(500, 480);
jp.add(tfFilePath);
jp.add(btnSelect);
jp.add(label1);
jp.add(text1);
jp.add(label2);
jp.add(text2);
jp.add(button);
jp.add(textArea);
jf.add(jp);
jf.setSize(500, 500);

// 文件选择器按钮
btnSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jfc.showDialog(new JLabel(), "选择");
tfFilePath.setText(jfc.getSelectedFile().toString());
}
});

// 检索按钮
button.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

扫描二维码关注公众号,回复: 6251528 查看本文章

// TODO Auto-generated method stub
if (count != 0L) {
count = 0L;
}
String filename = text2.getText();// 需要查找的文件后缀
String fii = text1.getText();// 需要查找的文件
String checkPath = tfFilePath.getText();
if ("".equals(checkPath)) {
System.out.println("请选择文件夹");
textArea.setText("");
textArea.append("请选择文件夹" + "\n");
return;
} else {
if (!"".equals(fii)) {
if (!"".equals(filename)) {
System.out.println("查找所有包含: " + fii + " 关键字,并以: "
+ filename + "为后缀的文件");
textArea.setText("");
textArea.setText("查找所有包含: " + fii + " 关键字,并以: "
+ filename + "为后缀的文件\n");

recursion(new File(checkPath), fii, filename,
textArea);
textArea.append("共检索出 " + count + " 条数据\n");
} else {
System.out.println("查找所有包含: " + fii + " 关键字的文件");
textArea.setText("");
textArea.setText("查找所有包含: " + fii + " 关键字的文件\n");
recursion(new File(checkPath), fii, filename,
textArea);
textArea.append("共检索出 " + count + " 条数据\n");
}
} else {
if (!"".equals(filename)) {
System.out.println("查找所有后缀为: " + filename + " 的文件");
textArea.setText("");
textArea.setText("查找所有后缀为: " + filename + " 的文件\n");
recursion(new File(checkPath), fii, filename,
textArea);
textArea.append("共检索出 " + count + " 条数据\n");
} else {
System.out.println("文件名和后缀不能同时为空");
textArea.setText("");
textArea.append("文件名和后缀不能同时为空" + "\n");
return;
}
}
}
}
});
jf.setVisible(true);
}

// 查找文件
public static void recursion(File file, String fii, String name,
TextArea textArea) {
if (file.exists()) {
File[] files = file.listFiles();
if (files != null) {
for (File file11 : files) {
if (file11.isDirectory()) {
recursion(file11, fii, name, textArea);
} else {

if (file11.getName().toUpperCase().endsWith(
name.toUpperCase())
&& file11.getName().toUpperCase().contains(
fii.toUpperCase())) {
count++;
textArea.append(file11.getAbsolutePath() + "\n");

}

}
}
}

} else {
System.out.println("文件不存在!");
}
}
}

猜你喜欢

转载自www.cnblogs.com/chaofaguan/p/10880361.html
今日推荐