From 7e74fe38447ad0da607369a3cabd46756b49e440 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 5 Jan 2009 08:20:49 +0900 Subject: [PATCH] fix media dir problem on win32, fix unicode issues with media --- anki/deck.py | 6 ++++-- anki/media.py | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/anki/deck.py b/anki/deck.py index 3db37d36e..ca64e4fd1 100644 --- a/anki/deck.py +++ b/anki/deck.py @@ -1366,6 +1366,9 @@ where id = :id""", pending) if self.path: # file-backed dir = re.sub("(?i)\.(anki)$", ".media", self.path) + if create == None: + # don't create, but return dir + return dir if not os.path.exists(dir) and create: try: os.mkdir(dir) @@ -1391,10 +1394,9 @@ Return new path, relative to media dir.""" def renameMediaDir(self, oldPath): "Copy oldPath to our current media dir. " assert os.path.exists(oldPath) - newPath = self.mediaDir(create=True) + newPath = self.mediaDir(create=None) # copytree doesn't want the dir to exist try: - os.rmdir(newPath) shutil.copytree(oldPath, newPath) except: # FIXME: should really remove everything in old dir instead of diff --git a/anki/media.py b/anki/media.py index 627639731..78ca78c02 100644 --- a/anki/media.py +++ b/anki/media.py @@ -68,8 +68,7 @@ Update media table. If file already exists, don't copy.""" # case insensitive filesystems suck pass else: - shutil.copy2(path.encode(sys.getfilesystemencoding()), - new.encode(sys.getfilesystemencoding())) + shutil.copy2(path, new) newSize = os.stat(new)[stat.ST_SIZE] if not deck.s.scalar( "select 1 from media where filename = :f",