diff --git a/src/main/java/cz/kamma/kfmanager/service/FileOperations.java b/src/main/java/cz/kamma/kfmanager/service/FileOperations.java index b379087..f45e3bf 100644 --- a/src/main/java/cz/kamma/kfmanager/service/FileOperations.java +++ b/src/main/java/cz/kamma/kfmanager/service/FileOperations.java @@ -658,16 +658,20 @@ public class FileOperations { for (File file : files) { if (callback != null && callback.isCancelled()) return; try { + // Always check if current file/directory matches name pattern + boolean nameMatched = true; + if (patternLower != null && !patternLower.isEmpty()) { + nameMatched = matchName(file.getName(), patternLower, filenameRegex, caseSensitive); + } + if (file.isDirectory()) { + if (nameMatched && (contentPattern == null)) { + callback.onFileFound(file, null); + } if (maxDepth == -1 || currentDepth < maxDepth) { searchRecursive(file, patternLower, filenameRegex, contentPattern, maxDepth, currentDepth + 1, searchArchives, caseSensitive, callback); } } else { - boolean nameMatched = true; - if (patternLower != null && !patternLower.isEmpty()) { - nameMatched = matchName(file.getName(), patternLower, filenameRegex, caseSensitive); - } - boolean contentMatched = true; if (nameMatched && contentPattern != null) { contentMatched = fileMatchesContent(file, contentPattern);