Edit Book: Fix a regression in the last release that broke the Arrange into folders tool when arranging into sub-folders of a folder that does not exist.

This commit is contained in:
Kovid Goyal 2016-11-01 14:38:00 +05:30
parent fee04ccc5f
commit a597903445

View File

@ -268,13 +268,20 @@ def get_recommended_folders(container, names):
def normalize_case(container, val): def normalize_case(container, val):
def safe_listdir(x):
try:
return os.listdir(x)
except EnvironmentError:
return ()
parts = val.split('/') parts = val.split('/')
ans = [] ans = []
for i in range(len(parts)): for i in range(len(parts)):
q = '/'.join(parts[:i+1]) q = '/'.join(parts[:i+1])
x = container.name_to_abspath(q) x = container.name_to_abspath(q)
xl = parts[i].lower() xl = parts[i].lower()
candidates = [c for c in os.listdir(os.path.dirname(x)) if c != parts[i] and c.lower() == xl] candidates = [c for c in safe_listdir(os.path.dirname(x)) if c != parts[i] and c.lower() == xl]
ans.append(candidates[0] if candidates else parts[i]) ans.append(candidates[0] if candidates else parts[i])
return '/'.join(ans) return '/'.join(ans)