天下三怎么玩好太虚:如何用java编写一个本地搜索程序?

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 18:53:23
我想用java做一个程序(应用程序,web应用程序,applet)什么都行,功能是可以自动搜索本机上的所有以mp3(示例,这个后缀可以自己输入,或者默认好)为后缀的文件。
现在第一步如何获得系统目录?系统都有那些目录,那些文件,这个我就不会作,请各位大侠们帮帮忙,帮帮小弟!

 
 
 
你必须用 File 类(http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/io/File.html)。

写了个简单的例子让你参考:

import java.io.*;
import java.util.*;

class SimpleLocalDriveSearch {

    private List result = new ArrayList( );

    private void recursiveSearch( File rootDir, String suffix ) {
        File[ ] files = rootDir.listFiles( );
        if ( files != null )
            for ( int i = 0; i < files.length; i++ ) {
                if ( files[ i ].isFile( ) && files[ i ].getName( ).endsWith( suffix ) )
                    result.add( files[ i ] );
                recursiveSearch( files[ i ], suffix );
            }
    }

    public List search( File startDir, String matchingExtension ) {
        result.clear( );
        recursiveSearch( startDir, "." + matchingExtension );
        return result;
    }

    public static void main( String[ ] args ) throws Exception {
        System.out.println( "Enter the extension of files to be searched for:" );
        String ext = new BufferedReader( new InputStreamReader( System.in ) ).readLine( );

        SimpleLocalDriveSearch slds = new SimpleLocalDriveSearch( );
        File[ ] roots = File.listRoots( );
        for ( int i = 0; i < roots.length; i++ ) {
            List found = slds.search( roots[ i ], ext );
            if ( found.size( ) > 0 )
                for ( Iterator iter = found.iterator( ); iter.hasNext( ); )
                    System.out.println( iter.next( ) );
            else
                System.out.println( "No match on " + roots[ i ] );
        }
    }
}
 
 
 

找一本LUCENE的教程看看,LUCENE是一个用JAVA写的开源全文检索包。