mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
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:
parent
fee04ccc5f
commit
a597903445
@ -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)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user