:: Visual Foxpro, Foxpro for DOS
Изменение времени файла
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
Использовал
Func set_file_time
Lparameters lpFileName, ltCreationTime, ltLastAccessTime, ltLastWriteTime
Local lpReOpenBuff,wStyle,hFile
lpReOpenBuff=Replicate(Chr(0),250)
Store Space(8) To lpCreationTime, lpLastAccessTime, lpLastWriteTime
wStyle=1
hFile=OpenFile(lpFileName, lpReOpenBuff, wStyle)
GetFileTime(hFile,@lpCreationTime,@lpLastAccessTime,@lpLastWriteTime)
If Vartype(ltCreationTime)='T'
lpCreationTime=STime2FTime(ltCreationTime)
Endif
If Vartype(ltLastAccessTime)='T'
lpLastAccessTime=STime2FTime(ltLastAccessTime)
Endif
If Vartype(ltLastWriteTime)='T'
lpLastWriteTime=STime2FTime(ltLastWriteTime)
Endif
SetFileTime(hFile,lpCreationTime,lpLastAccessTime,lpLastWriteTime)
CloseHandle(hFile)
Endfunc
*
Function STime2FTime
Lpara ltSTime
Local lcFTime, lnFTime, i, lnTmp
lnFTime=(ltSTime-{^1601/01/01 1:0:0})*10^7
lcFTime=''
For i=56 To 0 Step -8
lnTmp=Int(lnFTime/(2^i))
lnFTime=(lnFTime-lnTmp*(2^i))
lcFTime=Chr(lnTmp)+lcFTime
Endfor
Return lcFTime
Declare Integer OpenFile In kernel32;
STRING lpFileName,;
STRING @ lpReOpenBuff,;
INTEGER wStyle
Declare GetFileTime In kernel32;
INTEGER hFile,;
STRING @ lpCreationTime,;
STRING @ lpLastAccessTime,;
STRING @ lpLastWriteTime
Declare Integer SetFileTime In kernel32;
INTEGER hFile,;
STRING @ lpCreationTime,;
STRING @ lpLastAccessTime,;
STRING @ lpLastWriteTime
Declare Integer CloseHandle In kernel32.Dll ;
INTEGER hObject

после перехода на летнее время стала глючить - ставит время зимнее, т.е. на 1 час вперед
что это может быть?



Отредактировано (31.03.05 11:32)


------------------
Никогда не откладывайте на завтра, то, о чем можно забыть навсегда
Ratings: 0 negative/0 positive
Re: Изменение времени файла
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Penner!

Цитата:
FAT records file times in local time. NTFS records file times natively in FILETIME format, so they are not affected by changes in time zone or daylight saving time
Ну и вообще почитай раздел MSDN ms-help://MS.MSDNQTR.2004JUL.1033/sysinfo/base/file_times.htm - там много чего интересного, особенно про все эти daylight да UTC...




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 22 AndyNigmatec  (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика