老师让写一个桌面搜索工具,我现在正在学java,就想用java写,当练手了。大家有什么建议吗

解决方案 »

  1.   

    根据文件名的话File就可以搞定
      

  2.   

    主要思想:打开每一个磁盘下的文件夹,然后判断里面的类型:如果是File,然后判断文件名是否与给予(要查找)文件名相同,如果是文件夹(Directory),继续打开,循环下去
      

  3.   

    用File类。
    这个应该复杂在界面吧。
      

  4.   

    package com.dai;import java.io.File;
    import java.util.ArrayList;public class ListAll
    {
    //用于判断目录或文件所处的层次
    private static int time;

    // 递归的方法
    public static void deepList(File file)
    {
    if (file.isFile() || 0 == file.listFiles().length)
    {
    return;
    }
    else
    {
    File[] files = file.listFiles();

    files = sort(files);

    for(File f : files)
    {
    StringBuffer output = new StringBuffer();

    if(f.isFile())
    {
    output.append(getTabs(time));
    output.append(f.getName());
    }
    else
    {
    output.append(getTabs(time));
    output.append(f.getName());
    output.append("\\");
    }

    System.out.println(output);

    if(f.isDirectory())
    {
    time++;

    deepList(f);

    time--;
    }
    }
    }
    } // 整理文件数组,使得目录排在文件之前
    private static File[] sort(File[] files)
    {
    ArrayList<File> sorted = new ArrayList<File>(); // 寻找到所有的目录
    for (File f : files)
    {
    if (f.isDirectory())
    {
    sorted.add(f);
    }
    }
    // 寻找到所有的文件
    for (File f : files)
    {
    if (f.isFile())
    {
    sorted.add(f);
    }
    } return sorted.toArray(new File[files.length]);
    }

    //判断需要加多少 tab的方法
    private static String getTabs(int time)
    {
    StringBuffer buffer = new StringBuffer();

    for(int i = 0; i < time; i++)
    {
    buffer.append("\t");
    }

    return buffer.toString();
    }


    public static void main(String[] args)
    {
    File file = new File("D:\\ZZZ");

    deepList(file);
    }
    }
    这是列出一个文件夹中的所有文件,我想对你有帮助的,,
      

  5.   

    谢谢,但是只有扫描文件夹的代码啊,但是还是谢谢。将文件夹排列在文件之前的函数给了我一个提醒。这个学期的业余时间不会愁无聊了。
    另外老师让我看看介绍Lucene的书,Lucene是一个全文检索系统。你如果有需要的话推荐你看一看。
      

  6.   

    嗯,我本来也打算借用关系数据库的模式,写个索引算法。但是老师推荐了一个可以借鉴的全文检索系统Lucene,我先看看这个吧