Irmen de Jong wrote:
On 16-5-2010 19:41, Sean DiZazzo wrote:
On May 14, 8:27 am, albert kao<albertk...@gmail.com>  wrote:
On May 14, 11:01 am, J<dreadpiratej...@gmail.com>  wrote:



On Fri, May 14, 2010 at 10:53, albert kao<albertk...@gmail.com>  wrote:

C:\python>rmdir.py
C:\test\com.comp.hw.prod.proj.war\bin
['.svn', 'com']
d .svn
dotd C:\test\com.comp.hw.prod.proj.war\bin\.svn
Traceback (most recent call last):
  File "C:\python\rmdir.py", line 14, in<module>
    rmtree(os.path.join(curdir, d))
  File "C:\Python31\lib\shutil.py", line 235, in rmtree
    onerror(os.remove, fullname, sys.exc_info())
  File "C:\Python31\lib\shutil.py", line 233, in rmtree
    os.remove(fullname)
WindowsError: [Error 5] Access is denied: 'C:\\test\
\com.comp.hw.prod.proj.war\\bin\\.svn\\entries'

--
http://mail.python.org/mailman/listinfo/python-list

You don't have permissions to remove the subdir or file entries in the
.svn directory...

Maybe that file is still open, or still has a lock attached to it?

I reboot my windows computer and run this script as administrator.
Do my script has a bug?

Are the directory or files marked as read only?

See this recipe and the comment from Chad Stryker:

http://code.activestate.com/recipes/193736-clean-up-a-directory-tree/

"Although it is true you can use shutil.rmtree() in many cases, there
are some cases where it does not work. For example, files that are
marked read-only under Windows cannot be deleted by shutil.rmtree().
By importing the win32api and win32con modules from PyWin32 and adding
line like "win32api.SetFileAttributes(path,
win32con.FILE_ATTRIBUTE_NORMAL" to the rmgeneric() function, this
obstacle can be overcome."

It might not be your problem, but if it is, this had me stumped for a
few weeks before I found this comment!

~Sean

You should be able to do this with os.chmod as well (no extra modules required). I'm not sure what the mode should be though. Perhaps 0777 does the trick.

-irmen


def make_readable(fpath):
    '''
    On windows, this will make a read-only file readable.
    '''
    mode = os.stat(fpath)[stat.ST_MODE] | stat.S_IREAD | stat.S_IWRITE
    chmod(fpath, mode)

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to