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 efd2762255
commit 93091fbe23
2 changed files with 9 additions and 5 deletions

View File

@ -591,7 +591,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

@ -793,16 +793,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