@@ -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