文件搜索器
这是为了熟悉文件操作而写的文件搜索器
?
?
?
1.实现文件搜索的具体实现
package 文件搜索器;import java.io.File;/** * 指定目录下的给定关键字的文件搜索 * * @author d.s */public class fileSearcher {/** * 搜索方法 * * @param path给定的目录 * @param key关键字 */public void Search(String path, String key) {File file = new File(path);// 如果给的路径正确if (file.exists()) {if (file.isDirectory()) {if(file.getName().indexOf(key) != -1)//关键字在文件夹名中存在的话.System.out.println(file.getAbsolutePath());File f[] = file.listFiles();for(int i = 0;i<f.length;i++){//递归搜索.Search(f[i].getAbsolutePath(),key);}}if(file.isFile()){if(file.getName().indexOf(key) != -1)//关键字在文件名中存在的话.System.out.println(file.getAbsolutePath());}}}}?
?
2.界面
package 文件搜索器;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;/** * 界面 * @author d.s * */public class fileSearcherUI extends JFrame{public static void main(String args[]){fileSearcherUI ui = new fileSearcherUI();ui.showUI();}public void showUI(){this.setTitle("fileSearcher");this.setSize(300,120);JLabel jl = new JLabel("指定目录:");JTextField jf = new JTextField(20);JLabel jl1 = new JLabel(" 关键字:");JTextField jf1 = new JTextField(20);//添加组建this.add(jl);this.add(jf);this.add(jl1);this.add(jf1);JButton but = new JButton("搜索");this.add(but);this.setLayout(new FlowLayout());//流体式布局this.setLocationRelativeTo(null);//居中显示this.setResizable(false);//不可改变大小this.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭时退出this.setVisible(true);//显示界面ActionListenerImpl l = new ActionListenerImpl(jf, jf1);but.addActionListener(l);}}?
?
?
3.监听器
package 文件搜索器;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JTextField;public class ActionListenerImpl implements ActionListener{private JTextField jf;private JTextField jf1;//获取文件指定的路径和关键字public ActionListenerImpl(JTextField jf, JTextField jf1){this.jf = jf;this.jf1 = jf1;}public void actionPerformed(ActionEvent e) {fileSearcher fs = new fileSearcher();fs.Search(jf.getText(), jf1.getText());}}?
?
?
界面粗糙了点.
?