Handle access errors scanning directories
Trying to read a directory that is visible but not accessible, or a symlink to a file in a directory that is not accessible will raise a PermissionError. Output these and then continue.
If os.scandir() raises an exception then the finally block accesses "scanner" before it is assigned, raising an UnboundLocalError.