Skip to content

Commit 8ec09d6

Browse files
committed
skip hidden files in files search
1 parent 62e6a05 commit 8ec09d6

1 file changed

Lines changed: 18 additions & 11 deletions

File tree

src/main/java/gr/sqlbrowserfx/utils/FilesUtils.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,20 @@ public static List<FileInfo> walkContentsWithLines(String dir, String regex, Str
2727
try (var stream = Files.walk(Paths.get(dir), depth)) {
2828
stream
2929
.filter(file -> {
30-
try {
31-
return !Files.isHidden(file); // skip hidden files
32-
} catch (IOException e) {
33-
return false;
34-
}
35-
})
30+
try {
31+
// Skip hidden files and any files inside hidden directories
32+
Path current = file;
33+
while (current != null && !current.equals(Paths.get(dir))) {
34+
if (Files.isHidden(current)) {
35+
return false;
36+
}
37+
current = current.getParent();
38+
}
39+
return true;
40+
} catch (IOException e) {
41+
return false;
42+
}
43+
})
3644
.filter(Files::isRegularFile) // skip directories
3745
.filter(file -> extension.isEmpty() ? true : file.getFileName().toString().toLowerCase().endsWith(extension.toLowerCase()))
3846
.forEach(file -> {
@@ -74,9 +82,12 @@ public static List<FileInfo> walkContentsWithLines(String dir, String regex, Str
7482
}
7583

7684
public static Set<String> walk(String dir, String pattern, int depth) {
85+
var split = pattern.split("\\.", 2);
86+
var actualPattern = split[0];
87+
var fileEnding = split.length > 1 ? split[1] : "";
7788
try (var stream = Files.walk(Paths.get(dir), depth)) {
7889
return stream
79-
.filter(file -> !Files.isDirectory(file) && file.getFileName().toString().toLowerCase().contains(pattern.toLowerCase()))
90+
.filter(file -> !Files.isDirectory(file) && (fileEnding.isEmpty() || file.getFileName().toString().endsWith(fileEnding)) && file.getFileName().toString().toLowerCase().contains(actualPattern.toLowerCase()))
8091
.map(Path::toAbsolutePath)
8192
.map(Path::toString)
8293
.collect(Collectors.toSet());
@@ -85,8 +96,4 @@ public static Set<String> walk(String dir, String pattern, int depth) {
8596
return new HashSet<>();
8697
}
8798
}
88-
89-
public static Set<String> walk(String dir, String pattern) {
90-
return walk(dir, pattern, 5);
91-
}
9299
}

0 commit comments

Comments
 (0)