java实现文件搜索功能,代码示例如下:


/**
     * 
     * 搜索文件 
 
     *  
     * @author xiaoyuan 

     * @taskId 

     * @param dir 搜索目录
     * @param key 搜索的关键字
     * @param rule 搜索规则
     * @param searchHidden  是否搜索隐藏文件,false不搜索

     */
    public static void searchFile(String dir,String key, String rule, boolean searchHidden)
    {
        File file = new File(dir);
        File[] fileList = file.listFiles();
        String fileName = "";
        String filePath = "";
        if (fileList == null || fileList.length == 0)
        {
            return;
        }
        for (File f : fileList)
        {
            // 不搜索隐藏文件
            if (!searchHidden && f.isHidden())
            {
                continue;
            }
            fileName = f.getName();
            filePath = f.getPath();
            if (f.isFile())
            {
                if (SearchRule.SUFFIX.equalsIgnoreCase(rule))
                {
                    // 获取文件后缀
                    String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
                    if (suffix.equalsIgnoreCase(key))
                    {
                        System.out.println("file path -->" + filePath);
                        // 统计搜索到的文件数
                        FILE_NUM ++;
                        // 搜索到的文件
                        FILE_LIST.add(f);
                    }
                    
                }
            }
            else if (f.isDirectory())
            {
                searchFile(filePath, key, rule, searchHidden);
                // 统计搜索到的目录数
                DIR_NUM ++;
            }
        }   
        
    }