简要理解:文件搜索器其本质就是对文件目录的遍历查找。主要就是在根目录下进行循环遍历,如果是目录则继续查找,如果是文件就返回文件路径。但是简单的进行遍历在文件非常多则很是耗时,因此借用线程来节约时间。
此为文件搜索器的界面代码:
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; /** * 文件搜索器界面 * @author hadoop * */ public class Border implements ActionListener{ private JFrame frame; private JTextField text1,text2; private JTextArea area=new JTextArea(40,50); /** * @param 主函数 */ public static void main(String[] args) { Border border=new Border(); border.init(); } private void init() { JFrame jfame=new JFrame(); JPanel jp=new JPanel(); jfame.setSize(800, 800); jfame.setDefaultCloseOperation(3); jfame.setTitle("文件查询器"); jfame.setLayout(new BorderLayout()); JLabel lable1=new JLabel("文件名: "); text1=new JTextField(14); JLabel lable2=new JLabel("根目录: "); text2=new JTextField(14); JButton j=new JButton("搜索"); jfame.add(jp,BorderLayout.NORTH); jfame.add(lable1,BorderLayout.SOUTH); jp.add(lable1); jp.add(text1); jp.add(lable2); jp.add(text2); jp.add(j); jfame.setVisible(true); jfame.add(new JScrollPane(area));//添加组件,显示文件内容 //添加监听 j.addActionListener(this); } public void actionPerformed(ActionEvent e) { String string=e.getActionCommand(); if(string.equals("搜索")){ FileSearchThread fileListener=new FileSearchThread(text1,text2,area); fileListener.start(); } } 然后就是搜索文件的线程
/** * 文件搜索的线程 * @author hadoop * */ public class FileSearchThread extends Thread { private JTextField keyfield; private JTextField pathfield; private JTextArea display; //构造方法 public FileSearchThread(JTextField keyfield,JTextField pathfield,JTextArea display){ this.keyfield=keyfield; this.pathfield=pathfield; this.display=display; } public void run(){ String key=keyfield.getText(); String path=pathfield.getText(); searchfile(key,path); } //递归搜索文件 private void searchfile(String keyword, String path) { File file=new File(path); if(file.exists()){ if(file.isDirectory()){ File fileArray[]=file.listFiles(); if(fileArray!=null){ for(int i=0;i<fileArray.length;i++){ searchfile(keyword,fileArray[i].getAbsolutePath()); } } } if(file.isFile()){ if(file.getName().indexOf(keyword)!=-1)//如果关键字在文件中出现 display.append(file.getAbsolutePath()+"\n"); } } } }
相关推荐
安卓重复文件搜索工具 Search Duplicate File 中文特别版Windows 10 Manager 中文版 什么是重复文件? 从互联网下载两次或以上的音乐,照片,视频或应用程序。 通过蓝牙接收的文件两次或更多次。 缓存的图像或缩略图...
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、...
FileViewer 演示文件查看器WPF窗体应用程序实例 第10章(\ch10) 示例描述:学习.NET中的文件操作。 BinaryFile 演示二进制文件读写实例 TextFile 演示文本文件读写实例 CopyFile 演示复制文件实例 Create...
# 爆破url.txt中的所有站点,爆破敏感文件,自定义notfound页面关键字为“找不到页面” pen.py uribrute -b -u @urls.txt -t interestfile --notfound "找不到页面" 3.1.5 Google Hacking功能 pen.py的search子...
保存的过滤器不仅可以立即在文档中搜索关键字或复选框,而且OmniOutliner 5 Pro允许您将这些过滤器保存在侧栏中。滑入式检查器 通过添加自动隐藏您不需要看到的内容的偏好设置,改进了全屏模式。只需将鼠标滑到屏幕...
参数jobname:string类型,可选项,指定要打开打印作业的名称,该名称将显示在打印管理器窗口中返回值Long。函数执行成功时返回打印作业号,发生错误时返回-1。如果任何参数的值为NULL,PrintOpen()函数返回NULL。...
生成文件纲要,包括函数、关键字等。安装后使用:Tlist 3.3 A 实现头文件跳转。ctags不能查找头文件 3.4 NERDtree 目录浏览功能。可以用o命令打开目录或文件,非常好用 3.5 MiniBuffer 打开多个文件时,生成一个类似...
13.2.5 制作关键字和索引文件 309 13.2.6 制作.chm文件 313 13.3 HTML帮助文件的使用 314 13.4 本章小结 315 第14章 GDI+技术 316 14.1 GDI+概述 317 14.2 基本图形绘制 317 14.2.1 绘制直线 317 ...
然后在该备份之上应用日志。该过程会将数据库或表空间恢复到某个特定时间点。前滚恢复要求启用归档日志记录。 3. 恢复的级别 建立灾难恢复计划对于现代企业至关重要。企业数据库中的信息对于进行业务活动是极其重要...
第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...
一般测试结果分析-搜索关键字: 1.程序无响应,ANR问题:在日志中搜索“ANR” 2.崩溃问题:在日志中搜索“CRASH” 3.其他问题:在日志中搜索”Exception” 详细分析monkey日志 Switch--查看log中的Switch,主要...
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 16、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)...
CDT 调试 MI(CDT Debug MI)是用于与 MI 兼容的调试器的应用程序连接器。 现在,让我们研究一下如何在实际应用程序中使用这些组件。图 1 显示了 Eclipse 中的 C/C++ 项目: 图 1. 在带有 CDT 插件的 Eclipse 中...
11.我们双击文件列表的dialog.ui 文件,便出现了下面所示的图形界面编辑界 面。 12.我们在右边的器件栏里找到Label 标签器件 13.按着鼠标左键将其拖到设计窗口上,如下图。 14.我们双击它,并将其内容改为helloworld...
2.15 文件和内建函数open()、file() 2.16 错误和异常 2.17 函数 2.17.1 如何定义函数 2.17.2 如何调用函数 2.17.3 默认参数 2.18 类 2.19 模块 2.19.1 如何导入模块...
外部过滤器,程序和命令 12.1. 基本命令 12.2. 复杂命令 12.3. 时间/日期 命令 12.4. 文本处理命令 12.5. 文件与归档命令 12.6. 通讯命令 12.7. 终端控制命令 12.8. 数学计算命令 12.9. 混杂命令 13. ...
16.3. 应用 17. Here Documents 17.1. Here Strings 18. 休息时间 Part 4. 高级 19. 正则表达式 19.1. 一个简要的正则表达式介绍 19.2. 通配 20. 子shell(Subshells) 21. 受限shell(Restricted Shells) 22. 进程替换...
固定组件面板错误,在执行基于文件的库搜索后无法重新打开所选组件类别。 进口商/出口商 17619 修复了导致P-CAD导入导出错误和PCAD16LD.DLL访问冲突的错误。 24746 修复了导入xDxDesigner项目时未正确转换总线的...
9.2 文件内建函数(open()和file()) 9.2.1 工厂函数file() 9.2.2 通用换行符支持(UNS) 9.3 文件内建方法 9.3.1 输入 9.3.2 输出 9.3.3 文件内移动 9.3.4 文件迭代 ...