使用通配符在目录中搜索文件
Search a file in a directory using wildcards
我需要使用 Java 检查目录中是否存在某些文件,但文件名有一个模式。例如文件名是recap_data_03082017.txt,最后的数字总是在变化。有没有一种方法可以使用像 recap_data_*.csv
这样的通配符来执行搜索
如果您使用的是 Java 8,您可以尝试以下操作,
try (Stream<Path> paths = Files.walk(Paths.get("/your/path/"), 1)) {
return paths
.filter(Files::isRegularFile)
.anyMatch(f -> {
final String fileName = f.getFileName().toString();
return fileName.startsWith("ecap_data_") && fileName.endsWith(".csv");
});
} catch (IOException e) {
e.printStackTrace();
}
我需要使用 Java 检查目录中是否存在某些文件,但文件名有一个模式。例如文件名是recap_data_03082017.txt,最后的数字总是在变化。有没有一种方法可以使用像 recap_data_*.csv
这样的通配符来执行搜索如果您使用的是 Java 8,您可以尝试以下操作,
try (Stream<Path> paths = Files.walk(Paths.get("/your/path/"), 1)) {
return paths
.filter(Files::isRegularFile)
.anyMatch(f -> {
final String fileName = f.getFileName().toString();
return fileName.startsWith("ecap_data_") && fileName.endsWith(".csv");
});
} catch (IOException e) {
e.printStackTrace();
}