如果是查找文件夹下的所有文件呢
时间: 2023-09-03 11:11:04 浏览: 55
如果要查找一个文件夹下的所有文件,可以使用 Java 的递归函数来实现。递归函数可以遍历文件夹下的所有文件和子文件夹,并对每个文件进行匹配操作。
以下是一个示例代码:
```java
import java.io.File;
import java.util.ArrayList;
public class SearchStringInFolder {
public static void main(String[] args) {
String folderPath = "path/to/your/folder";
String searchString = "your search string";
File folder = new File(folderPath);
ArrayList<File> files = listFilesForFolder(folder);
for (File file : files) {
try {
if (file.isFile() && file.getName().endsWith(".txt")) {
String fileContent = readFileContent(file);
if (fileContent.contains(searchString)) {
System.out.println("Found the string in the file: " + file.getAbsolutePath());
}
}
} catch (Exception e) {
System.out.println("Error reading the file: " + file.getAbsolutePath() + ", " + e.getMessage());
}
}
}
public static ArrayList<File> listFilesForFolder(final File folder) {
ArrayList<File> fileList = new ArrayList<>();
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
fileList.addAll(listFilesForFolder(fileEntry));
} else {
fileList.add(fileEntry);
}
}
return fileList;
}
public static String readFileContent(File file) throws IOException {
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
}
return sb.toString();
}
}
```
在上面的代码中,我们使用 `listFilesForFolder` 函数递归遍历文件夹下的所有文件和子文件夹,并将所有文件保存到一个 `ArrayList` 中。然后,我们对每个文件进行匹配操作。请将 `folderPath` 变量替换为您要搜索的文件夹的实际路径,并将 `searchString` 变量替换为您要查找的实际字符串。注意,此代码只会搜索以 `.txt` 结尾的文本文件。如果要搜索其他类型的文件,可以修改 `if` 语句中的条件。