/: net/mindview/util/Directory.java
// Produce a sequence of File objects that match a
// regular expression in either a local directory,
// or by walking a directory tree.
package net.mindview.util;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
public final class Directory
{
public static File[] local(File dir, final String regex)
{
return dir.listFiles(new FilenameFilter() {
private Pattern pattern = Pattern.compile(regex);
public boolean accept(File dir, String name)
{
return pattern.matcher(new File(name).getName()).matches();
}
});
}
public static File[] local(String path, final String regex)
{
// Overloaded
return local(new File(path), regex);
}
// A two-tuple for returning a pair of objects:
public static class TreeInfo implements Iterable<File>
{
public List<File> files = new ArrayList<File>();
public List<File> dirs = new ArrayList<File>();
// The default iterable element is the file list:
public Iterator<File> iterator()
{
return files.iterator();
}
void addAll(TreeInfo other)
{
files.addAll(other.files);
dirs.addAll(other.dirs);
}
public String toString()
{
return "dirs: " + PPrint.pformat(dirs) + "\n\nfiles: "
+ PPrint.pformat(files);
}
}
public static TreeInfo walk(String start, String regex)
{ // Begin recursion
return recurseDirs(new File(start), regex);
}
public static TreeInfo walk(File start, String regex)
{ // Overloaded
return recurseDirs(start, regex);
}
public static TreeInfo walk(File start)
{ // Everything
return recurseDirs(start, ".*");
}
public static TreeInfo walk(String start)
{
return recurseDirs(new File(start), ".*");
}
static TreeInfo recurseDirs(File startDir, String regex)
{
TreeInfo result = new TreeInfo();
for (File item : startDir.listFiles()) {
if (item.isDirectory()) {
result.dirs.add(item);
result.addAll(recurseDirs(item, regex));
} else // Regular file
if (item.getName().matches(regex))
result.files.add(item);
}
return result;
}
// Simple validation test:
public static void main(String[] args)
{
if (args.length == 0)
System.out.println(walk("."));
else
for (String arg : args)
System.out.println(walk(arg));
}
}
注意大师的 walk(String start, String regex) 方法,就是你要的。
start 是要搜索的目录名,比如你的 "c:/WINDOWS"
regex 是过滤条件,是正则表达式,对应你的 "*.txt"
这个大师是 Bruce Eckel
分享到:
相关推荐
基于vc++搜索目录下所有文件.Treeview
可以随意搜索电脑上的文件名和目录,文件解压之后打开最下面的exe可执行文件即可使用,也可创建快捷方式放到电脑桌面,方便实用。
shell脚本,搜索目录下所有目录以及文件并列出文件名称。shell脚本,搜索目录下所有目录以及文件并列出文件名称。shell脚本,搜索目录下所有目录以及文件并列出文件名称。
原版的LayoutCast死板的按照一定规则去搜索目录,造成某些工程不适用LayoutCast,所以对此做出优化。
由动态页面生成纯静态网站, 符合搜索优化原则,易于搜索 引擎收录。可以随意增加、删除和修改类别和具体单个网站...8、可以作为独立的小型或中型搜索目录, 也可以作为网站的链接程序。 9、META标题根据目录类别变化。
易语言搜寻目录寻找文件源码,搜寻目录寻找文件,预读文件,搜索,文本是否为空,属性对话框,设定执行文件_
8、可以作为独立的小型或中型搜索目录, 也可以作为网站的链接程序。 9、META标题根据目录类别变化。 10、保留页面底部SXWO的链接。 11、版本VER2.0 系统要求: <br>服务器:Windows 2000及IIS...
用了两个小时把目录给添加上了,这回看书很方便了。绝对没有加密!
为了方便各位整理资料,特意做了这款小软件,希望能帮到大家解决日常超多文件查找的麻烦,有兴趣的小伙伴可以借阅去使用,里面debug目录下就是exe文件,同时还包含了操作文档,简单快捷帮您找到想要的文件
该资源上传为配合博客,内容为ResourcesLoader + ResourcesProvider实例中我用到的待搜索和解析的目录。
在目录中搜索指定字符串
要解决这个问题,可以重建搜索目录,搜索目录会重新开始对数据文件编制索引。搜索目录是一个文件,其中的所有 Outlook 项目和 Microsoft Windows 项目(数据文件)均已编制索引。 重建搜索目录的步骤如下: 1. ...
网盘目录搜索系统源码,一套针对BD网盘搜索、目录展示的管理系统。带有详细的搭建教程。 网盘目录搜索网站优点: 1、网盘中有什么,目录中就能搜索出什么。 2、网盘中增加什么,目录中就同步增加什么。 3、几百T,...
一套针对 BD 网盘搜索、目录展示的管理系统。网盘目录搜索系统源码,带有详细的搭建教程。 网盘目录搜索网站优点: 1、网盘中有什么,目录中就能搜索出什么。 2、网盘中增加什么,目录中就同步增加什么。 3、几百 ...
资源名称:人工智能:改变世界,重建未来(带目录)内容简介:为何只能在有限范围使用的弱人工智能突然变得聪明起来?拥有人类的创造力、复制人类的思维、与人类相爱……人工智能究竟能走多远?智能时代,人类的工作...
特征: 轻量级单页应用程序( ~8KB html/css/js ) 响应式设计递归文件搜索目录缓存( sqlite ) 网站地图支持用法./autoindex [options] 旗帜类型描述-a string TCP网络地址以侦听连接-d string 数据库位置-r ...
Linux下遍历目录搜索文件源程序以及执行文件,支持嵌套目录,输出目录、子目录和对应的子目录中的文件列表,以及总文件数目。 LINUX下历遍目录的方法一般是这样的:打开目录-》读取-》关闭目录 相关函数是opendir -> ...
搜索歌词目录,通过多个关键字搜索歌词,自动加载c:\program files\ttplayer\lyrics目录,若没有可以自己添加搜索目录.结果有序.
本程序主要功能是:找出指定文件夹中所有包含指定制字符串的文件。 编程语言:java 操作系统:跨平台(win7,Linix已实验)
Fontsource搜索目录 搜索目录网站。 目录链接可以在找到。 发展 开始之前必须先安装Node.js和NPM。 通过在项目根目录中运行npm ci来安装必要的软件包。 建造 要构建,请在项目根目录中运行npm run build 。 将在....