only check listdir on dirs

is_hidden is called with files, not just dirs
This commit is contained in:
MinRK 2014-03-19 16:04:15 -07:00
parent 74be15ec19
commit 3e67d961c9

View File

@ -102,10 +102,12 @@ def is_hidden(abs_path, abs_root=''):
if any(part.startswith('.') for part in inside_root.split(os.sep)):
return True
# check that path can be listed
# check that dirs can be listed
# may fail on Windows junctions or non-user-readable dirs
if os.path.isdir(abs_path):
try:
os.listdir(abs_path)
except Exception:
except OSError:
return True
# check UF_HIDDEN on any location up to root
@ -114,7 +116,7 @@ def is_hidden(abs_path, abs_root=''):
try:
# may fail on Windows junctions
st = os.stat(path)
except Exception:
except OSError:
return True
if getattr(st, 'st_flags', 0) & UF_HIDDEN:
return True