java实现路径通配符*,**,?
时间: 2023-07-23 14:18:06 浏览: 129
在Java中,可以使用以下方式实现路径通配符的匹配:
1. 使用java.io.File类的listFiles()方法获取路径下的所有文件和文件夹,然后使用正则表达式或通配符匹配进行筛选。
例如,使用通配符*匹配所有文件和文件夹:
```
File dir = new File("path/to/directory");
File[] files = dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.matches(".*"); // 使用正则表达式匹配所有文件和文件夹
}
});
```
2. 使用Apache Commons IO库中的FilenameUtils类来实现通配符匹配。
例如,使用通配符**匹配所有子目录和文件:
```
Collection<File> files = FileUtils.listFiles(new File("path/to/directory"), new WildcardFileFilter("**"), TrueFileFilter.INSTANCE);
```
3. 使用Java NIO中的PathMatcher类来实现通配符匹配。
例如,使用通配符?匹配单个字符:
```
PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:path/to/file?.txt");
Path path = Paths.get("path/to/file1.txt");
boolean matches = matcher.matches(path); // 返回true
```
阅读全文