Getting windows error while making a backup
dudeja.rajat at gmail.com
dudeja.rajat at gmail.com
Mon Oct 13 07:20:48 EDT 2008
Hi,
I've this backup script that having some problems. Please some one suggest
what is that I'm missing in it.
This backup script deletes the previous backups and then create a new backup
by simply renaming the original folder to backup folder and creates a new
folder.
The folder contains many files and folders and many .svn (i.e. hidden and
readonly files and directories)
Well things seems to be done correctly but at times while renaming the
folder to backup I get this error
WindowsError: [Error 5] Access is denied
Here is my code:
The thread class that removes the hidden and readonly permission from files
and folders. Then using shutil.rmtree to delete the files
import threading
import win32con
import win32api
import win32file
import sys
import shutil
sys.setrecursionlimit(5000)
class delDirTreeThread(threading.Thread):
def __init__(self, path):
self.path = path
threading.Thread.__init__(self)
def run(self):
self.delRecursive(self.path)
shutil.rmtree(self.path)
def delRecursive(self, path):
for file in os.listdir(path):
file_or_dir = os.path.join(path,file)
if os.path.isdir(file_or_dir):
print file_or_dir
print "file_or_dir: %s - %d" %(file_or_dir,
win32file.GetFileAttributesW(file_or_dir))
if win32file.GetFileAttributesW(file_or_dir) !=
win32con.FILE_ATTRIBUTE_NORMAL:
win32file.SetFileAttributesW(file_or_dir,
win32con.FILE_ATTRIBUTE_NORMAL)
if os.listdir(file_or_dir) != []:
self.delRecursive(file_or_dir) #it's a directory
recursive call to function again
else:
print file_or_dir
print "ELSE - file_or_dir: %s - %d" %(file_or_dir,
win32file.GetFileAttributesW(file_or_dir))
if win32file.GetFileAttributesW(file_or_dir) !=
win32con.FILE_ATTRIBUTE_NORMAL:
win32file.SetFileAttributesW(file_or_dir,
win32con.FILE_ATTRIBUTE_NORMAL)
#os.remove(file_or_dir) #it's a file, delete it
>From some part in application I call this threading class as:
delTree = delDirTreeThread(subdir)
delTree.start()
delTree.join()
subdir is the absolute path to the directory tree for which I want to create
a new backup and delete the older ones.
The very reason I did this inside a thread is because I want application to
wait until the backup created (making sure that the older ones are deleted
and new one created)
Can some one help in this?
Regards,
Rajat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20081013/6604d573/attachment.html>
More information about the Python-list
mailing list