`

对文件的个人理解

    博客分类:
  • java
阅读更多

呼呼,从假期归来!

虽然集训中学习了文件的各种操作:文件的创建、删除等,但是经过了那么长时间,还是忘记了许多。
文件主要就是要学会使用它的方法。所以 ,最近又重新做了一遍文件搜索器。通过这个搜索器来复习文件的内容。

搜索器的外部框架的构建可以参考原来String界面开发。

private void initGUI() {
		JFrame jf= new JFrame();
		
		jf.setTitle("文件搜索器");//标题
		jf.setSize(600,600);//大小
		jf.setLocationRelativeTo(null);//显示位置
		jf.setResizable(false);//不可改变大小
		jf.setDefaultCloseOperation(3);//程序关闭

		JPanel north = new JPanel();//创建一个北边面板
//		north.setPreferredSize(new Dimension(50,0));
		
		JLabel jl1 = new JLabel("目录:");
		north.add(jl1);
		
		String[] str1 = new String[]{"C:\\","D:\\","E:\\","F:\\"};//创建一个字符数组 
		JComboBox jc1 = new JComboBox(str1);//实例化一个复选框
		jc1.setEditable(true);//设置复选框可编辑
		north.add(jc1);//将复选框添加到面板上
		
		JLabel jl2 = new JLabel("文件名:");
		north.add(jl2);
		
		JTextField jt = new JTextField(10);//实例化一个可编辑框
		north.add(jt);//将可编辑框添加到面板上
		
		JLabel jl3 = new JLabel("扩展名:");
		north.add(jl3);
		
		String[] str2 = new String[]{".*",".txt",".png",".gif"};//创建一个字符数组 
		JComboBox jc2 = new JComboBox(str2);//实例化一个复选框
		jc2.setEditable(true);//设置复选框可编辑
		north.add(jc2);//将复选框添加到面板上
		
		JButton jb = new JButton("确定");
		north.add(jb);
		
		jf.add(north,BorderLayout.NORTH);//将面板加到窗体上
		
		JTextArea jta = new JTextArea();//创建一个显示文本的多行区域
		jta.setEditable(false);
		jta.append("请点击确定按钮开始查找...");
		JScrollPane js = new JScrollPane(jta);
		jf.add(js,BorderLayout.CENTER);
		
		//创建一个事件处理类
		FileListener fl = new FileListener(jc1,jc2,jt,jta);
		//给按钮添加监听器
		jb.addActionListener(fl);
		
		jf.setVisible(true);//可见
		
	}

 

然后,创建一个监听器用来命令按钮以达到搜索的目的。

public void actionPerformed(ActionEvent e) {
		pathname1 = jc1.getSelectedItem().toString();//获取目录选项
		name = jt.getText();//获取文件名
		pathname2 = jc2.getSelectedItem().toString();//获取文件名后缀
		
		FileThread ft = new FileThread(jta, pathname1,name,pathname2);//开一个文件线程
		
		ft.start();
	}

 

最后就是这个搜索器最重要的代码了。

public class FileThread extends Thread {

	private JTextArea jta;
	private String pathname1;
	private String name = "", pathname2 = "";

	public FileThread(JTextArea jta, String pathname1, String name,
			String pathname2) {
		super();
		this.jta = jta;
		this.pathname1 = pathname1;
		this.name = name;
		this.pathname2 = pathname2;
	}

	public int FindFile(String path) {
		int count = 0;
		File file = new File(path);// 创建一个文件类
		File[] filelist = file.listFiles();// 列表目录
		//判断目录是否为空
		if (filelist == null || filelist.length == 0) {
			return 0;
		} else {
			for (int i = 0; i < filelist.length; i++) {
				if (filelist[i].isFile()) {
					String filename = filelist[i].getAbsolutePath();//获取文件名
					//判断文件名是否与你要找的文件一致
					if (name.equals("") && pathname2.equals(".*")) {
						count++;
						jta.append("\n" + filename);
					}else if(name.equals("")&&!pathname2.equals(".*")){
						if(filename.endsWith(pathname2)){
							count++;
							jta.append("\n" + filename);
						}
					}else if(!name.equals("")&&pathname2.equals(".*")){
						int temp1 = filename.lastIndexOf("\\");
						int temp2 = filename.lastIndexOf(".");
						if(temp1<temp2){
							String nametemp = filename.substring(temp1+1,temp2);
							if(nametemp.equals(name)){
								count++;
								jta.append("\n" + filename);
							}
						}
					}else{
						String nametemp =  name + "." + pathname2;
						if(filename.endsWith(nametemp)){
							count++;
							jta.append("\n" + filename);
						}
					}
				} else if (filelist[i].isDirectory()) {
					count += FindFile(filelist[i].getAbsolutePath());
				}
			}
		}
		return count;
	}

	public void run() {

		int count = FindFile(pathname1);//运行寻找文件的方法
		//统计文件总数
		if (count != 0) {
			jta.append("\n");
			jta.append("文件总数为:" + count);
		}
		

	}

}

 
利用线程使得搜索出来的文件能够一边在文本上显示一边执行搜索操作。

1
2
分享到:
评论

相关推荐

    个人文件转移工具.rar

    在日常使用电脑的过程中,我们经常会遇到C盘空间不足的问题,这主要是因为系统文件、应用程序以及用户的个人文件都存储在这个驱动器上。为了优化系统性能和管理个人数据,我们需要掌握一些文件转移的技巧。"个人文件...

    e00 数据格式个人理解

    E00数据格式个人理解 E00是一种公共的交换格式,由ESRI开发,广泛应用于地理信息系统(GIS)领域。然而,ESRI并没有提供官方的数据格式说明,因此本文旨在对E00数据格式进行详细的分析和介绍,以帮助GIS专业人士更...

    私人文件加密(可以对私人文件进行简单的加密)

    这种加密方法可以为个人文件提供一层防护,防止数据泄露或被盗用。以下是对这个主题的详细解释: 1. **加密原理**: 文件加密是通过一种称为加密算法的过程,将原始数据(明文)转化为看似随机的、无法理解的形式...

    个人文件清理

    在IT领域,尤其是在Windows操作系统环境下,个人文件管理是日常工作中不可或缺的一部分。"个人文件清理"是一个针对初学者的项目,旨在帮助用户有效地管理和清理他们的文件系统。在这个项目中,我们重点探讨了目录树...

    Linux--文件系统管理(实验)

    在Linux操作系统中,文件系统是管理和组织数据存储的关键部分。本实验主要涵盖了如何在Linux下创建、挂载和卸载文件系统,以及如何实现...通过实际操作,不仅可以增强对Linux文件系统的理解,还能提升系统管理能力。

    文件_个人 电子相册 pictures

    标签 "文件 个人 电子相册 pictures" 是对内容的关键词提炼,便于搜索和分类。这些标签强调了文件的性质——个人的、与相册相关的,以及包含图片的事实。 在压缩包子文件的文件名称列表中,我们看到 "C1932_Chen_...

    个人档案文件管理系统 汇编课程设计

    汇编语言的语法严谨,每一行指令都需要精确地对应到CPU的机器码,因此阅读和编写汇编代码需要对计算机硬件和内存模型有深入的理解。 `MYFILE.bat` 和 `MYFILE执行.bat` 是批处理文件,通常用于自动化执行一系列命令...

    个人mysql文件资源.zip

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。在个人工作中,MySQL常用于存储、管理和检索数据,...通过深入学习和实践这些资源,可以增强对数据库系统的理解和操作技能。

    操作系统的实验作业之文件管理

    在这个实验作业中,我们将深入理解文件管理的基本原理,并通过实践加深对相关概念的理解。 首先,我们需要了解文件系统。文件系统是操作系统用于组织和存储文件的一种方法,它规定了文件如何在磁盘上分布,以及如何...

    RAR文件格式的研究

    RAR 文件中蕴藏着丰富的个人信息,发掘分析其中的有用线索是调查取证的重要手段,而其首要条件就是需要对 RAR 文件进行格式解析。本文利用 RAR 实验室提供的 Unrar 程序对 rar 数据文件进行格式解析,从而为证据信息...

    操作系统课程设计报告-多用户文件系统的模拟

    通过对这些模块的阅读和分析,可以深入理解操作系统如何处理多用户文件系统的复杂性。 总之,"操作系统课程设计报告-多用户文件系统的模拟"是一个涵盖操作系统核心概念和实际编程技能的综合项目。它不仅要求学生...

    UbuntuLinux上机指导二理解文件和文件系统.doc

    用户通常有自己的家目录,如`/home/username`,在这里存放个人文件。文件的权限和所有权由用户和用户组的概念管理,`chmod`和`chown`命令分别用于改变文件权限和所有权。 理解这些基本概念对于在Ubuntu Linux上进行...

    个人写的Android文件浏览器源码

    这个“个人写的Android文件浏览器源码”提供了一种实现方式,可以帮助开发者理解和学习如何在Android环境中构建这样的应用。 首先,Android文件浏览器的核心功能包括: 1. **目录遍历**:程序需要能够列出设备的根...

    PHP WEB文件管理源码

    这款源码特别适用于那些需要在项目中集成文件管理功能的应用场景,如内容管理系统(CMS)、在线文档协作平台或者个人网站等。 PHP作为开源的服务器端脚本语言,具有易于学习、高效执行的特点,因此在Web开发领域...

    清理个人文件软件.7z

    此外,理解软件的工作原理和清理范围至关重要,以免误删重要文件。在清理过程中,遵循公司的信息安全政策,确保所有的行动都是合规的,也是至关重要的。最后,软件的安全性也应得到保证,确保下载来源可靠,避免下载...

    讯闪个人磁盘独立版

    这比通过互联网进行文件传输更为高效,减少了对带宽的占用,同时提高了数据安全性,因为文件不需上传到公共云端。 个人网盘的概念强调了数据的私密性和个人控制。使用迅闪个人磁盘独立版,用户可以创建自己的存储...

    对文件进行加密并生成MD5值

    "对文件进行加密并生成MD5值"这一主题涉及到两个关键概念:文件加密和MD5哈希值。 首先,我们来讨论文件加密。文件加密是一种保护数据安全的技术,通过使用特定的算法将原始数据(明文)转化为无法轻易理解的形式...

    个人网盘源码.zip

    首先,个人网盘系统的核心功能包括文件上传、下载、删除、移动、复制等操作,这些功能的实现离不开对文件系统的理解。源码中通常会包含文件管理模块,负责处理用户对文件的各种操作请求。文件的存储一般采用分布式...

    简易文件管理器

    9. **排序与过滤**:根据日期、大小、名称等属性对文件进行排序,或者通过过滤器显示特定类型的文件,可以帮助用户快速定位所需内容。 10. **用户界面**:简洁易用的用户界面是提高用户体验的关键。理解菜单、工具...

Global site tag (gtag.js) - Google Analytics