Fix #1373, #1386 - Creating and moving non-ascii folder names in MS Windows

This commit is contained in:
Calum Lind 2011-02-02 01:25:17 +00:00
parent ba6389bcac
commit 417a9f6e63
2 changed files with 9 additions and 5 deletions

View File

@ -593,7 +593,7 @@ def utf8_encoded(s):
"""
if isinstance(s, str):
s = decode_string(s, locale.getpreferredencoding())
s = decode_string(s)
elif isinstance(s, unicode):
s = s.encode("utf8", "ignore")
return s

View File

@ -807,16 +807,20 @@ class Torrent(object):
def move_storage(self, dest):
"""Move a torrent's storage location"""
if not os.path.exists(dest):
# Convert path from utf8 to unicode
dest_u=unicode(dest,"utf-8")
if not os.path.exists(dest_u):
try:
# Try to make the destination path if it doesn't exist
os.makedirs(dest)
os.makedirs(dest_u)
except IOError, e:
log.exception(e)
log.error("Could not move storage for torrent %s since %s does not exist and could not create the directory.", self.torrent_id, dest)
log.error("Could not move storage for torrent %s since %s does not exist and could not create the directory.", self.torrent_id, dest_u)
return False
try:
self.handle.move_storage(dest.encode("utf8"))
self.handle.move_storage(dest_u)
except:
return False