java代码实现服务器文件全局检索/搜索
Posted 洛阳泰山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码实现服务器文件全局检索/搜索相关的知识,希望对你有一定的参考价值。
核心代码如下
import javax.swing.filechooser.FileSystemView;
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class FileSearch
public static void main(String[] args)
getFile(File.listRoots()[1],"OpenOffice4");
public static void getDisks(String name)
//过滤掉非"本地磁盘"类型的磁盘
FileSystemView fileSystemView = FileSystemView.getFileSystemView();// 获取FileSystemView对象
File[] _files = File.listRoots();
for (File file : _files)
// 获取磁盘的类型描述信息
String diskType = fileSystemView.getSystemTypeDescription(file);
System.out.println(diskType);
//盘符类型包括:本地磁盘、可移动磁盘、CD 驱动器等
if(diskType.equals("本地磁盘"))
if(getFile(file,name).size()!=0)
break;
;
public static List<File> getFile(File disk,String name)
// System.out.println(disk);
File[] files=disk.listFiles();
if(disk.isDirectory()&&files!=null)
List<File> fileList=Arrays.asList(files);
List<File> filters=fileList.stream().filter(e->e.getPath().contains(name)).collect(Collectors.toList());
if(filters.size()!=0)
System.out.println("结果:"+filters);
return fileList;
if(fileList.size()!=0)
fileList.forEach(f->
if(f.canRead()&&!f.isHidden())
getFile(f,name);
);
return Collections.emptyList();
单类实现,idea里运行主方法即可。
比如查询第二个磁盘,windows一般是D盘下的名字为OpenOffice4的文件夹或文件。
运行结果
以上是关于java代码实现服务器文件全局检索/搜索的主要内容,如果未能解决你的问题,请参考以下文章