En Sat, 04 Jul 2009 03:31:11 -0300, Robert <kxrobe...@googlemail.com>
escribió:

Guess this is wrong in win32file; or win32file looses info by early conversion to digits.

There is certainly something fishy with win32file. GetFileTime/SetFileTime
don't even agree about the times being local or UTC:

  from win32file import CreateFile, SetFileTime, GetFileTime, CloseHandle
  from win32file import GENERIC_READ, GENERIC_WRITE, OPEN_EXISTING

fn = "test.txt"
fh = CreateFile(fn, GENERIC_READ | GENERIC_WRITE, 0, None, OPEN_EXISTING,
0, 0)
sts, creationTime, accessTime, writeTime = GetFileTime(fh)
print creationTime, accessTime, writeTime
SetFileTime(fh, creationTime, accessTime, writeTime)
CloseHandle(fh)

fh = CreateFile(fn, GENERIC_READ | GENERIC_WRITE, 0, None, OPEN_EXISTING,
0, 0)
sts, creationTime, accessTime, writeTime = GetFileTime(fh)
print creationTime, accessTime, writeTime
CloseHandle(fh)

Each time the script is executed, the file's times advances by 3 hours (I
am located at GMT-3).

D:\temp>python testfiletime.py
07/06/09 04:13:12 07/06/09 04:50:36 06/10/07 09:38:26
07/06/09 07:13:12 07/06/09 07:50:36 06/10/07 12:38:26

D:\temp>python testfiletime.py
07/06/09 07:13:12 07/06/09 07:50:36 06/10/07 12:38:26
07/06/09 10:13:12 07/06/09 10:50:36 06/10/07 15:38:26

D:\temp>dir test.txt
   El volumen de la unidad D es Dardo
   El número de serie del volumen es: 9884-7F48

   Directorio de D:\temp

10/06/2007  12:38            21.468 test.txt
                 1 archivos         21.468 bytes
                 0 dirs     204.499.968 bytes libres


To restore the same date/time, I have to use:

  from pywintypes import Time
creationTime, accessTime, writeTime = [Time(timegm(localtime(int(t)))) for
t in GetFileTime(fh)[1:]]

--
Gabriel Genellina

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to