diff --git a/IPython/html/utils.py b/IPython/html/utils.py index 3269e54..806ac94 100644 --- a/IPython/html/utils.py +++ b/IPython/html/utils.py @@ -101,12 +101,14 @@ def is_hidden(abs_path, abs_root=''): inside_root = abs_path[len(abs_root):] if any(part.startswith('.') for part in inside_root.split(os.sep)): return True - - # check that path can be listed - try: - os.listdir(abs_path) - except Exception: - return True + + # 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 OSError: + return True # check UF_HIDDEN on any location up to root path = abs_path @@ -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