Don't send a copy to the recycle bin when changing metadata on windows

This commit is contained in:
Kovid Goyal 2009-07-13 12:34:55 -06:00
parent 55a4f4a208
commit 2ca1777869

View File

@ -40,8 +40,12 @@ def delete_file(path):
except:
os.remove(path)
def delete_tree(path):
def delete_tree(path, permanent=False):
if permanent:
shutil.rmtree(path)
else:
try:
if not permanent:
winshell.delete_file(path, silent=True, no_confirm=True)
except:
shutil.rmtree(path)
@ -661,9 +665,9 @@ class LibraryDatabase2(LibraryDatabase):
name = name[:-1]
return name
def rmtree(self, path):
def rmtree(self, path, permanent=False):
if not self.normpath(self.library_path).startswith(self.normpath(path)):
delete_tree(path)
delete_tree(path, permanent=permanent)
def normpath(self, path):
path = os.path.abspath(os.path.realpath(path))
@ -715,10 +719,10 @@ class LibraryDatabase2(LibraryDatabase):
# Delete not needed directories
if current_path and os.path.exists(spath):
if self.normpath(spath) != self.normpath(tpath):
self.rmtree(spath)
self.rmtree(spath, permanent=True)
parent = os.path.dirname(spath)
if len(os.listdir(parent)) == 0:
self.rmtree(parent)
self.rmtree(parent, permanent=True)
def add_listener(self, listener):
'''