读书人

桌面搜索,该怎么处理

发布时间: 2012-01-24 23:11:55 作者: rapoo

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

[解决办法]

Java code
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);    }}
[解决办法]
探讨

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

我觉得复杂的地方应该是如何建立和管理索引。老师的要求是可以根据时间,文件名,文本文件还可以根据内容,还要可以适应增量(增加删除修改某个文件,不用再扫描磁盘,直接在索引里就可以反映出来,因此要实时运行一个监视增量的后台的进程,也因此这个进程要占用资源尽可能的小),我就很头疼怎么设计索引的模式

读书人网 >J2SE开发

热点推荐