java 获得一个目录下第二个_之前文件名相同的文件并放入范形为FIle的list集合中
时间: 2024-02-09 18:08:27 浏览: 114
显示目录内同类型文件
你可以使用Java的File类和正则表达式来实现该功能。下面是一个示例代码,你可以根据自己的需求进行修改:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FileFinder {
public static void main(String[] args) {
String folderPath = "/path/to/folder"; // 目录路径
String fileName = "example"; // 文件名(不包含扩展名和下划线)
List<File> fileList = findFiles(folderPath, fileName); // 查找文件并放入List集合中
System.out.println("Found " + fileList.size() + " files:");
for (File file : fileList) {
System.out.println(file.getName());
}
}
public static List<File> findFiles(String folderPath, String fileName) {
List<File> fileList = new ArrayList<>();
File folder = new File(folderPath);
if (folder.exists() && folder.isDirectory()) {
Pattern pattern = Pattern.compile("^" + fileName + "_([^_]+)_.*$"); // 匹配文件名的正则表达式
for (File file : folder.listFiles()) {
if (file.isFile()) {
Matcher matcher = pattern.matcher(file.getName());
if (matcher.matches()) {
String nameWithoutUnderscore = matcher.group(1);
if (nameWithoutUnderscore.equals(fileName)) {
fileList.add(file);
}
}
}
}
}
return fileList;
}
}
```
在上面的代码中,我们首先定义了目录路径和文件名。然后我们调用findFiles方法查找符合要求的文件并放入List集合中。该方法使用了Java的正则表达式来匹配文件名,并通过循环遍历目录下所有文件来查找符合要求的文件。最后,我们在控制台输出了查找到的文件名。
需要注意的是,这个程序只查找文件名中第二个下划线前面的部分是否相同,如果需要查找其他部分是否相同,还需要进行相应的修改。
阅读全文