Skip to content

Commit 518f771

Browse files
authored
Update CodeStringSearcher.java
1 parent 7c72ec0 commit 518f771

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

src/main/java/CodeStringSearcher.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import java.io.*;
2-
import java.nio.file.Files;
3-
import java.nio.file.Path;
4-
import java.nio.file.Paths;
2+
import java.nio.file.*;
53
import java.util.*;
64
import java.util.regex.Matcher;
75
import java.util.regex.Pattern;
86
import java.util.stream.Collectors;
7+
import java.util.stream.Stream;
98

109
public class CodeStringSearcher {
1110

@@ -36,11 +35,9 @@ public static void main(String[] args) {
3635
try {
3736
Files.createDirectories(Paths.get(outputDirectory)); // 创建输出目录
3837

39-
// 获取目录下的所有C#文件
38+
// 获取目录及其子目录下的所有C#文件
4039
Path dirPath = Paths.get(csDirectory);
41-
List<Path> csFiles = Files.list(dirPath)
42-
.filter(path -> path.toString().endsWith(".cs") || path.toString().endsWith(".java"))
43-
.collect(Collectors.toList()); // 使用 collect(Collectors.toList())
40+
List<Path> csFiles = getFilesRecursively(dirPath, ".cs", ".java");
4441

4542
for (Path csFile : csFiles) {
4643
analyzeCode(csFile, searchText, outputDirectory);
@@ -50,6 +47,15 @@ public static void main(String[] args) {
5047
}
5148
}
5249

50+
private static List<Path> getFilesRecursively(Path dirPath, String... extensions) throws IOException {
51+
try (Stream<Path> walk = Files.walk(dirPath)) {
52+
return walk.filter(Files::isRegularFile)
53+
.filter(path -> Arrays.stream(extensions)
54+
.anyMatch(ext -> path.toString().endsWith(ext)))
55+
.collect(Collectors.toList());
56+
}
57+
}
58+
5359
private static void analyzeCode(Path csFile, String searchText, String outputDirectory) {
5460
try (BufferedReader br = new BufferedReader(new FileReader(csFile.toFile()))) {
5561
List<String> lines = new ArrayList<>();

0 commit comments

Comments
 (0)