java文件模糊搜索_java 查询路径中所有文件夹和文件的名称,支持文件名模糊查询...

java 查询路径中所有文件夹和文件的名称,支持文件名模糊查询

有时候我们遇到需要查询服务器或者本机某个路径下有哪些文件?或者根据文件名称模糊搜索文件,那么就可以使用本方法:可以获取某个路径下所有文件夹名称,以及所有文件名称。

代码:

importjava.io.File;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;public classTest {/*** 获取文件夹下所有文件的名称 + 模糊查询(当不需要模糊查询时,queryStr传空或null即可)

* 1.当路径不存在时,map返回retType值为1

* 2.当路径为文件路径时,map返回retType值为2,文件名fileName值为文件名

* 3.当路径下有文件夹时,map返回retType值为3,文件名列表fileNameList,文件夹名列表folderNameList

*@paramfolderPath 路径

*@paramqueryStr 模糊查询字符串

*@return

*/

public static HashMapgetFilesName(String folderPath , String queryStr) {

HashMap map = new HashMap<>();

List fileNameList = new ArrayList<>();//文件名列表

List folderNameList = new ArrayList<>();//文件夹名列表

File f = newFile(folderPath);if (!f.exists()) { //路径不存在

map.put("retType", "1");

}else{boolean flag =f.isDirectory();if(flag==false){ //路径为文件

map.put("retType", "2");

map.put("fileName", f.getName());

}else{ //路径为文件夹

map.put("retType", "3");

File fa[]=f.listFiles();

queryStr= queryStr==null ? "" : queryStr;//若queryStr传入为null,则替换为空(indexOf匹配值不能为null)

for (int i = 0; i < fa.length; i++) {

File fs=fa[i];if(fs.getName().indexOf(queryStr)!=-1){if(fs.isDirectory()) {

folderNameList.add(fs.getName());

}else{

fileNameList.add(fs.getName());

}

}

}

map.put("fileNameList", fileNameList);

map.put("folderNameList", folderNameList);

}

}returnmap;

}/*** 测试*/

public static voidmain(String[] args) {

HashMap filesName = getFilesName("D:/test", null);

System.out.println(filesName);

}

}

文件夹:

e35293f7d23cefe5b4895ebd9adbe57f.png

测试结果为:

{

retType=3,

folderNameList=[convert, document, faceRec, logs, resource],

fileNameList=[111.pdf, 333.pdf, 444.pdf, license.properties, selfLicense.properties, test1.txt]

}

retType为3说明路径是文件夹,folderNameList是文件夹名称列表,fileNameList是文件名称列表。

测试一下模糊查询:

/*** 测试*/

public static voidmain(String[] args) {

HashMap filesName = getFilesName("D:/test", "t");

System.out.println(filesName);

}

测试结果为:

{

retType=3,

folderNameList=[convert, document],

fileNameList=[license.properties, selfLicense.properties, test1.txt]

}

可以看到,此次的查询结果是根据文件名(包含后缀)中包含“t”模糊查询的结果。

上述代码如果模糊查询不需要包含后缀,可自行修改。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值