Filter (Subfolder) within another filter, unexptected result

Hello,

I am trying to create a filter that exclude a few folders. I am able to get the desired result if I create the following filters:


Now, if I save just the Subfolder criteria as a filter as follows:


So, I have that criteria saved as a filter and would like to use it in conjunction with other searches. So to test it out, I use a simple search of any doc files, "*.doc", and pulled in the saved filter. I noticed that Directory Opus was still searching within the subfolders I wanted to exclude. I tying using the "match" or "no match" option, but neither of them appeared to make a difference. This is what the filters looked like:


I am not too sure why this doesn't work. Any ideas? Oh, if the developers are looking at this, please add auto-complete within the advanced filter. Perhaps it is there, but I couldn't figure out what keybaord combination to press for DO to auto-complete a folder's name or cycle through the folders.

Any help is greatly appreciated,
Mark

I think you're running into a technicality with how the Sub-Folder clause works.

Sub-Folder is special/unique and exists to solve a particular problem. Its purpose is to short-circuit a filter so that it stops looking when it reaches a certain directory. (That being quicker than going inside a directory and looking at every file & folder below it if when you know you're going to reject all of them. More about that here.)

The problem here is that you've got a filter-in-a-filter and it's the inner filter which gets short-circuited. (The Sub-Folder clause short-circuits the filter it's a part of.) The outer filter isn't affected and, since the inner filter doesn't have anything but the Sub-Folder clause, the inner filter doesn't really do anything at all.

What you've tried to do seems completely reasonable, though. You shouldn't have to know the intimate details of how Sub-Folder is implemented in order to use it.

I don't think anyone has noticed/raised this before, so I've sent a report to GPSoftware.

(BTW, thanks for writing such a clear post! The examples & screenshots had just the right details to understand what was going on.)