Let's say I have a collection of archives and want to find those that contain a specific folder structure, starting from the root:
\folder1\folder2\folder3
How can I prevent Opus from crawling through the entire archive?
Using Full path would require a wildcard because the archive names differ, which extends the folder depth indefinitely.
PathDepth might work if all archives are at the same level in the file system, but it would still feel clumsy.
A special character that identifies the archive's root would be useful for the standard filter.
My attempts with the Evaluator were also unsuccessful, as I couldn’t find a way to determine the archive filename. A function like ArchivePart() or a variable that returns the full path of the archive would be helpful.
You could use a full path wildcard like (no match:) *.zip\*\*\*\*
Not perfect, of course, since you have to count the parts instead of adjusting a numeric depth parameter. It could also get confused if by folder names ending in .zip, too. But it may be enough if it doesn't need adjusting often.
I think the even bigger problem is that the "Find in" field is not detailed enough and lets Opus enumerate way too many folders.
For instance, if I want it to find my /scripts folder and "Find in" is set to C:\, it will happily search in C:\Program Files etc. even if Full path is set to the full path to /scripts:
You'd need to use subfolder clauses to stop Opus recursing through the whole archive.
(A lot of the time the speed difference won't be large. Most of the time it takes is the time to read the archive's listing into memory, after which testing all the paths inside it against a wildcard will usually be very fast. Unless there are millions of files in the archive, of course.)
If you only want to search within the scripts folder, why start the search at C:\ rather than the scripts folder?
Connecting Find In to the Full Path clause(s) would be very difficult given there could be multiple of them and they might use complex wildcards that have no clear way to tie them back to a starting path.