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 ++;
}
}
}