I'm trying to set any of the dates (create, modification, access) of a directory under windows with python.
I'm trying to do this as I'm trying to write a unittest for a directory cleaning script I'm writing (ie I need the test to set the create/mod time for some of the directories so that I can be sure that the script works properly - as it picks dirs based upon their age). I've tried using the utime( path, times). That doesn't work as the doco states "Whether a directory can be given for path depends on whether the operating system implements directories as files (for example, Windows does not)." So that doesn't work. So I tried mark hammonds win32 extensions with something like this import win32file, win32con, pywintypes filehandle = win32file.CreateFile(file, win32file.GENERIC_WRITE,win32file.FILE_SHARE_WRITE, None,win32con.OPEN_ALWAYS, 0, None) nowWin32=pywintypes.Time(theTime) win32file.SetFileTime(filehandle, nowWin32, nowWin32, nowWin32) which works fine for files but fails with "Access Denied" when I invoke the CreateFile with a directory. This seems to occur no matter the combination of READ or WRITE I choose for the parameters. So does anyone have any useful suggestions (other than not using windows)? I've thought of a couple of reallly nasty solutions: 1. Temporarily alter the underlying system clock back to the required time and create the directory then resetting it back again afterwards. 2. Create the required directory in some form of virtual filesystem - eg Zip file, rar archive, tar etc. Then extract it to the real filesystem and hope windows honors the timestamps (untested at this point). None of those is particularly appealing. Thanks for listening. -- http://mail.python.org/mailman/listinfo/python-list