链接: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) {				// 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("文件不存在!");
		}
	}
}