易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Java通过通配符查找文件
Java通过通配符查找文件代码
package
com.ym.test.file;
import
java.io.*;
import
java.util.ArrayList;
import
java.util.regex.Matcher;
import
java.util.regex.Pattern;
public
class
FileDirectorySearch {
/**
* 查询指定目录下的所有文件
* @param args
*/
public
static
void
main(String[] args) {
// // TODO Auto-generated method stub
FileDirectorySearch star=
new
FileDirectorySearch();
// String path="d:";
// File war=new File(path);
// int count=star.findTxtFileCount(war,"exe");
// System.out.println("----: " + count);
File[] files = star.getFiles(
"d:/share"
,
"*"
);
for
(
int
i=
0
;i<files.length;i++){
System.out.println(files[i]);
}
}
/**
* 创建查询指定目录下文件的方法
*
* @param allList
* 指定目录
* @param endName
* 指定以“”结尾的文件
* @return 得到的文件数目
*/
public
int
findTxtFileCount(File allList,String endName){
//
int
textCount=
0
;
// 创建fileArray名字的数组
File[] fileArray= allList.listFiles();
// 如果传进来一个以文件作为对象的allList 返回0
if
(
null
==fileArray){
return
0
;
}
// 偏历目录下的文件
for
(
int
i=
0
;i<fileArray.length;i++){
// 如果是个目录
if
(fileArray[i].isDirectory()){
// System.out.println("目录: "+fileArray[i].getAbsolutePath());
// 递归调用
textCount+=findTxtFileCount(fileArray[i].getAbsoluteFile(),endName);
// 如果是文件
}
else
if
(fileArray[i].isFile()){
// 如果是以“”结尾的文件
if
(fileArray[i].getName().endsWith(endName)){
// 展示文件
System.out.println(
"exe文件: "
+fileArray[i].getAbsolutePath());
// 所有以“”结尾的文件相加
textCount++;
}
}
}
return
textCount;
}
/**
* 在本文件夹下查找
* @param s String 文件名
* @return File[] 找到的文件
*/
public
static
File[] getFiles(String s)
{
return
getFiles(
"./"
,s);
}
/**
* 获取文件
* 可以根据正则表达式查找
* @param dir String 文件夹名称
* @param s String 查找文件名,可带*.?进行模糊查询
* @return File[] 找到的文件
*/
public
static
File[] getFiles(String dir,String s) {
//开始的文件夹
File file =
new
File(dir);
s = s.replace(
"."
,
"#"
);
s = s.replaceAll(
"#"
,
"\\."
);
s = s.replace(
"*"
,
"#"
);
s = s.replaceAll(
"#"
,
".*"
);
s = s.replace(
"?"
,
"#"
);
s = s.replaceAll(
"#"
,
".?"
);
s =
"^"
+ s +
"$"
;
System.out.println(s);
Pattern p = Pattern.compile(s);
ArrayList list = filePattern(file, p);
File[] rtn =
new
File[list.size()];
list.toArray(rtn);
return
rtn;
}
/**
* @param file File 起始文件夹
* @param p Pattern 匹配类型
* @return ArrayList 其文件夹下的文件夹
*/
private
static
ArrayList filePattern(File file, Pattern p) {
if
(file ==
null
) {
return
null
;
}
else
if
(file.isFile()) {
Matcher fMatcher = p.matcher(file.getName());
if
(fMatcher.matches()) {
ArrayList list =
new
ArrayList();
list.add(file);
return
list;
}
}
else
if
(file.isDirectory()) {
File[] files = file.listFiles();
if
(files !=
null
&& files.length >
0
) {
ArrayList list =
new
ArrayList();
for
(
int
i =
0
; i < files.length; i++) {
ArrayList rlist = filePattern(files[i], p);
if
(rlist !=
null
) {
list.addAll(rlist);
}
}
return
list;
}
}
return
null
;
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图