`
希绪弗斯
  • 浏览: 16461 次
社区版块
存档分类
最新评论

文件搜索

阅读更多

文件操作有很多,创建,删除等操作,这些就不说了,我就把自己练习的几个附上吧。

A列出指定目录的全部文件

public class FileTest {

	/**
	 * 列出给定目录的全部文件
	 */
	public static void main(String[] args) {
          File f=new File("f:"+File.separator);
          String str[]=f.list();
          for(int i=0;i<str.length;i++){
        	  System.out.println(str[i]);
          }
	}
}

 list()方法,这个还真不是只看就成,必须练一下手,这才记得深啊。

B列出一个目录中的全部内容

import java.io.File;

public class FileDemo1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
           File f=new File("e:"+File.separator);
           File files[]=f.listFiles();
           for(int i=0;i<files.length;i++){
        	   System.out.println(files[i]);
           }
	}
}

 

C判断给定路径是否为目录

import java.io.File;

public class FileDemo2 {

	/**
	 * 判定一个给定的路径是否是目录
	 */
	public static void main(String[] args) {
               File f=new File("e:"+File.separator);
               if(f.isDirectory()){
            	   System.out.println(f.getPath()+"路径是目录");
               }else{
            	   System.out.println(f.getPath()+"路径不是目录");
               }
	}
}

下面是文件搜索器:

上传图片一张:在下面哈。。。

这是我做的简单的文件搜索器界面,还没有界面美化,添加了滚动条,还没有计数的框框,只是简单地把文件搜索和界面连接在一起了。

最花费时间的部分不是界面,也不是文件搜索,而是连接在一起。我当时的思路是:

第一步:搞定文件搜索

第二步:初始化界面

第三步:监听器(匿名内部类)

第四步:怎样把它们联系在一起

有几点:1.最开始的打印出路径的方法search()是在主函数中调用的,那现在想一按“查找”这个按钮,才会在下面的JTextArea区域中显示出所有的路径,所以要在监听器匿名内部类的方法中调用search()方法,代码如下:

  ActionListener al=new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				 str1=jtf.getText();
				 str2=jtd.getText();
				int count= fs.search(str1, str2);
				 if(arrayList==null&&arrayList.size()==0){
					 jta.append("您查找的文件不存在!\n");
					 System.out.println("您查找的文件不存在!");
				 }else{
					 for(int i=0;i<arrayList.size();i++){
						 jta.append("文件"+arrayList.get(i)+"\n");
					 }
				 }
jta.append("总数为"+count);
       System.out.println("总数:"+count);
			}
        };        

2文件搜索单独定义一个类:

public class FileSearch {
	//定义一个arrayList对象
    private ArrayList<String> arrayList=new ArrayList<String>();
      private String str2;
	private String str1;
       //构造函数传参数
	public  FileSearch(ArrayList<String> arrayList,String str2,String str1){
		this.arrayList=arrayList;
		this.str1=str1;
		this.str2=str2;
}
	public int search(String str1,String str2){
	 
		  int count=0;
		  File fl=new File(str1);
		  File [] file=fl.listFiles();//列出目录
		  if(null==file||file.length==0){
			  return 0;
		  }
		  for(int i=0;i<file.length;i++){
			  if(file[i].isDirectory()){
				  
				  String filemingzi=file[i].getAbsolutePath();
 count+=search(filemingzi,str2);
			  }
			  if(file[i].isFile()){
				  
				  String subDir=file[i].getAbsolutePath();
                                                //如果文件与查找的文件名相同,就把路径添加到队列中
				  if(subDir.indexOf(str2)>=0){
					  count++;
					  arrayList.add(subDir);
				  }
//				  System.out.println("文件:"+subDir);
//				  jta.append(file[i].toString()+"\r\n");
				   }
			  
			  }
		return count;
		}
	}

 在这里用了List接口中最常用的ArrayList数组集合,我觉得当时很傻的,想用队列去存储所有的路径,又要增加一个类。并且,上几节课刚学完集合框架,当时还想学这个干嘛,不知道什么时候用的说,结果这果真就联系上了,非常好用。

3JTextArea,嘿,我不会告诉你,我不知道JTextArea有append()方法,当时还用了JOptionPane.showMessageDialog(),结果每一条信息弹出一个对话框,电脑差点崩溃了。。。
4初始化界面:

public class FileCarry extends JFrame{
static String str1;
String str2;
JTextField   jtf;
JTextField jtd;
static JTextArea jta;
FileSearch fs;
//File [] file;
String array[];
private int i;
private ArrayList<String> arrayList=new ArrayList<String>();
// FileSearch fs;
	/** 
                 * @param args
	 */
	public static void main(String[] args) {
		   
          FileCarry fc=new FileCarry();
          fc.init();
	}

	private void init() {
		this.setDefaultCloseOperation(3);	
        this.setSize(new Dimension(1000,600));
        this.setTitle("文件搜索器");
        this.setLocationRelativeTo(null);
        this.setLayout(new FlowLayout());
        javax.swing.JLabel lblName=new javax.swing.JLabel("要查找的文件所在的盘符:");
	    //添加到窗体上
	     this.add(lblName);
	     jtf=new JTextField(20);
	     this.add(jtf);
	     JLabel lbl=new JLabel("该盘下要查找的文件");
	     this.add(lbl);
	     jtd=new JTextField(20);
	     this.add(jtd);
//显示目录的窗口
	    JButton jb=new JButton("查找");
	     this.add(jb);
	     jta=new JTextArea(30,50);
	     this.add(jta);
	     JScrollPane pane=new JScrollPane(jta);
	     this.add(pane);	     
	      fs=new FileSearch(arrayList,str2,str1); 
        ActionListener al=new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				 str1=jtf.getText();
				 str2=jtd.getText();
				int count= fs.search(str1, str2);
				 if(arrayList==null&&arrayList.size()==0){
					 jta.append("您查找的文件不存在!\n");
 System.out.println("您查找的文件不存在!");
				 }else{
					 for(int i=0;i<arrayList.size();i++){
						 jta.append("文件"+arrayList.get(i)+"\n");
					 }
				 }
  jta.append("总数为"+count);
       System.out.println("总数:"+count);
			}
        };       
        jb.addActionListener(al);
        this.setVisible(true);
	}
//	private int printCount(String str1) {
//		  int count=0;
//		  File fl=new File(str1);
//		  File [] file=fl.listFiles();//列出目录
//		  if(null==file||file.length==0){
//			  return 0;
//		  }
//		  for(i=0;i<file.length;i++){
//			  if(file[i].isDirectory()){
//				  String filemingzi=file[i].getAbsolutePath();
//				//  String fileming=file[i].getAbsolutePath();
//				  System.out.println("目录:"+filemingzi);
//				  
//				  jta.append(file[i].toString()+"\r\n");
//				  count+=printCount(filemingzi);
//			  }
//			  if(file[i].isFile()){
//				  count++;
//				  String subDir=file[i].getAbsolutePath();
//				  System.out.println("文件:"+subDir);
//				  jta.append(file[i].toString()+"\r\n");
//				  
//			  }
}

 后面的那个注释掉的printcount方法,是指定目录搜该目录下所有文件的方法,其实和search()方法就有一点差别,不舍得删就放上去了。。。这个还是简易的,我还会再做修改。。。

额。。。自己刚刚重新看了一遍,发现我这注释真不是一般的少啊。。。不好的习惯啊,我一定会改!

  • 大小: 100.9 KB
0
1
分享到:
评论
2 楼 希绪弗斯 2012-12-05  
mfkvfn 写道
为什么不直接用java.io.File类的
public File[] listFiles(FileFilter filter)

方法?

这个刚才查了书上,没见着,网上才查,才知道有这个貌似是对文件过滤的FileFilter接口,是吧?看了下代码,没怎么懂。。。。。嘿嘿,所以才用了笨方法listFiles()。。。。
1 楼 mfkvfn 2012-12-05  
为什么不直接用java.io.File类的
public File[] listFiles(FileFilter filter)

方法?

相关推荐

    C#文件搜索_C#_文件搜索_

    在C#编程语言中,文件搜索是一个常见的任务,特别是在开发应用程序时需要访问本地或网络上的文件资源。本项目提供了一套C#文件搜索的源码,对于初学者来说,这是一个很好的学习实例,可以帮助理解如何在C#环境中实现...

    文件搜索狗(win7文件搜索辅助工具)V1.1 绿色版

    文件搜索狗是一款针对Windows 7操作系统设计的高效文件搜索辅助工具,旨在提升用户在大量文件中查找特定文件的速度和效率。V1.1版本作为绿色版软件,无需安装即可使用,方便快捷,不占用系统资源,同时保持了良好的...

    文件搜索器(文件搜索器)

    文件搜索器,正如其名,是一种能够帮助用户在计算机中快速定位和查找特定文件的工具。在日常工作中,我们常常需要查找存储在电脑中的某个文件,但面对庞大的文件系统,手动逐个文件夹查找无疑效率低下。这时,一个...

    autoit写的一个文件搜索工具

    标题中的“autoit写的一个文件搜索工具”指的是一个利用AutoIt编程语言开发的软件,用于在计算机中快速查找和定位文件。AutoIt是一种轻量级、面向Windows操作系统的自动化脚本语言,它允许用户编写简单的到复杂的...

    文件搜索软件 - 比Win7自带的搜索快多了

    在IT领域,文件搜索效率是提高生产力的关键因素之一。标题提到的“文件搜索软件 - 比Win7自带的搜索快多了”显然是一款专门优化文件查找速度的应用程序,旨在解决Windows 7操作系统中内置搜索功能的性能问题。描述中...

    QQ群共享群文件搜索工具批量下载工具

    QQ群共享群文件搜索工具批量下载工具是一款专为QQ用户设计的应用程序,旨在方便用户高效地搜索并批量下载自己加入的QQ群中的共享文件。这款工具显著提升了在多个群组中寻找特定文件的效率,尤其适用于需要频繁处理或...

    C# 文件搜索程序

    本文将深入探讨“C# 文件搜索程序”的核心知识点,包括多关键字文件搜索、多线程处理以及如何确保用户界面的响应性。 1. **C# 文件搜索程序**: C# 文件搜索程序是利用C#编程语言编写的,能够遍历指定盘符下的文件...

    Tomm闪电文件搜索

    《Tomm闪电文件搜索:高速精准的文件检索神器》 在日常的工作与学习中,我们常常需要快速定位到存储在电脑中的某个文件,这是一项看似简单却往往让人头疼的任务。传统的文件搜索方式可能存在搜索速度慢、匹配不准确...

    文件搜索器(用于文件的搜索,更改日期等)

    文件搜索器是一款强大的工具,专为用户快速查找和管理计算机中的文件而设计。它具有高效、灵活和易用的特点,能够帮助用户在海量文件中准确地定位到目标文件,节省了大量手动翻阅文件夹的时间。这款软件尤其适用于...

    小新文件搜索专家

    "小新文件搜索专家"是一款高效实用的文件搜索工具,专为解决用户在大量文件中快速定位特定文件的问题。在日常工作中,我们经常会遇到需要查找某个特定文件的情况,尤其是在存储了大量数据的硬盘中,手动查找往往耗时...

    QT写的文件搜索器(Designer窗体设计结合代码)

    在这个"QT写的文件搜索器"项目中,开发者结合了Qt Designer的设计功能和编程逻辑,构建了一个能够搜索指定路径下文件的应用程序。 首先,Qt Designer是Qt库的一部分,它提供了拖放式的图形界面设计环境。通过...

    文件搜索神器——HotKey

    为此,一种名为"HotKey"的文件搜索神器应运而生,它旨在提供更快速、更精准的文件搜索体验。 "HotKey"是一款专门优化文件搜索的软件,它的主要特点在于其快捷键操作和高效的搜索算法。通过创建自定义的热键组合,...

    电脑文件搜索神器

    【电脑文件搜索神器】是一款高效、便捷的文件检索工具,专为解决用户在大量文件中快速定位所需内容的问题。这款神器无需安装,可直接运行,且能被固定在任务栏,便于用户随时调用,极大地提高了工作效率。 在现代...

    文本文件搜索工具

    【文本文件搜索工具】是一个基于Java Swing开发的应用程序,它专为用户提供了在特定文件夹内快速查找含有特定关键字的文本文件的能力。这个工具对于那些需要频繁在大量文本数据中定位信息的用户来说非常实用,比如...

    文件搜索文件搜索文件搜索文件搜索

    "文件搜索文件搜索文件搜索文件搜索"这个标题可能是由于重复输入,实际上指的是对文件搜索功能的强调。在Windows操作系统中,文件搜索功能被称为“搜索”或“文件资源管理器搜索”,它允许用户通过输入关键词来查找...

    本地文件搜索神器

    "本地文件搜索神器"正是这样一款工具,旨在帮助用户快速定位硬盘中的文件,提高工作效率。这款软件以其强大的搜索功能和出色的性能,赢得了用户的广泛好评。 在Windows操作系统中,虽然内置了文件搜索功能,但有...

    电脑文件搜索工具

    【电脑文件搜索工具】 在日常使用电脑的过程中,我们经常需要查找存储在计算机中的特定文件或文档,尤其是在处理大量数据时,传统的Windows资源管理器搜索功能可能无法满足我们的需求。这时,"电脑文件搜索工具"就...

    安德闪电文件搜索 1.0.1.115

    《安德闪电文件搜索:快速定位,高效查找的利器》 在日常的计算机操作中,文件搜索是一项必不可少的功能。Windows操作系统虽然内置了文件搜索工具,但在处理大量数据时,其速度可能无法满足用户的需求。因此,第三...

    java 文件搜索引挚

    Java 文件搜索引挚是用于在计算机系统中快速查找指定类型或具有特定属性的文件的工具。这个工具通常基于Java编程语言开发,利用Java的强大功能和跨平台特性,为用户提供高效、便捷的文件检索服务。在Java中实现文件...

    FileSearch_文件搜索程序及源码_

    《深入解析:FileSearch_文件搜索程序及源码》 在日常工作中,快速查找本地计算机上的文件是一项必不可少的任务。为了满足这一需求,开发者们设计了各种文件搜索工具,其中之一便是"FileSearch"。这个程序以其高效...

Global site tag (gtag.js) - Google Analytics