Drupal file_scan_directory option nomask
Other than a quick sample of blocking a specific file extension using the 'nomask' option, the documenttation for Drupal's file_scan_directory() does not help much with how to bock content from certain directories. The documentation says
The preg_match() regular expression of the files to ignore.'
So it leaves you to believe that any regex should work. So setting
$options['nomask'] = "#(/deleted/)#"
should block any directory named 'deleted'. The problem is, it doesn't work that way. In file_scan_directory() the regex is not run against the full path of the file, it is only run against the directory or filename recursively. It is not evaluating 'directory1/subsection/deleted/index.html' , where the regex above would definitely come back with a hit and reject the item. It is first evaluating, 'directory', then 'subsection', then 'deleted'... It does not get a hit on deleted because it is missing the slashes on each side.
One possibilty would be to remove the slashes from the regex like this:
$options['nomask'] = "#(deleted)#";
But without the slashes, it would not only reject the directory 'deleted', it would reject the directory 'not-deleted' and the file 'faq-why-my-account-was-deleted.htm' which might have undesired consequences.
The trick to get it to reject only 'deleted' as a directory and its contents is to restrict the regex to only the start and end of the string being evaluated. like this
$options['nomask'] = "#^(deleted)$#";
and if you wanted to block 'deleted' and another directory like '_vti_cnf' it would look like this:
$options['nomask'] = "#^(deleted|_vti_cnf)$#";