這是為了熟悉文件操作而寫的文件搜索器
?
?
?
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());
}
}
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

