Êàê âûÿñíèòü äàòó ïîñëåäíåãî äîñòóïà ê ôàéëó
Íåêèé ïðîãðàììèñò-êîáîëèñò â ïîòå ëèöà òðóäèëñÿ íàä ïðåñëîâóòîé ïðîáëåìîé 2000 ãîäà. Îí ÷èíèë ïðîãðàììû âî ìíîãèõ ôèðìàõ è çàøèáàë ïðèëè÷íûå áàáêè. Íî ïî ìåðå ïðèáëèæåíèÿ ðîêîâîé äàòû åãî âñå áîëüøå îõâàòûâàë óæàñ: ÷òî áóäåò ñî âñåìè ýòèìè ïðîãðàììàìè è ñ íèì ñàìèì? Íàêîíåö îí ðåøèë çàìîðîçèòüñÿ è ïðîñïàòü â àíàáèîçå äî ôåâðàëÿ 2000 ãîäà, à òàì, ãëÿäèøü, âñÿ ñâèñòîïëÿñêà è óëÿæåòñÿ... ...Îí ïðîñíóëñÿ â ñòðàííîì íåçíàêîìîì ïîìåùåíèè, âîêðóã ëèêîâàëè ëþäè: - Î÷íóëñÿ, î÷íóëñÿ! - Ñåé÷àñ ñ âàìè áóäåò ãîâîðèòü ïðåçèäåíò Çåìíîãî Øàðà. Íà îãðîìíîì ñòåðåîñêîïè÷åñêîì ýêðàíå âîçíèê ÷åëîâåê, âåñüìà ïîõîæèé íà Áèëëà Ãåéòñà. - Âèäèòå ëè, ïðîãðàììà âàøåé êàìåðû ïðè ïåðåõîäå ê 2000 ãîäó ñðàáîòàëà íåïðàâèëüíî, è âû ïðîñïàëè ïî÷òè 8000 ëåò. Íî âû íå âîëíóéòåñü. Íàøà æèçíü ïðåêðàñíà. Ìû äîñòèãëè îãðîìíûõ óñïåõîâ â íàóêå è òåõíîëîãèè. Ìû ïîêîðèëè âðåìÿ è ïðîñòðàíñòâî. Ìû... - Íî ïî÷åìó âû ìåíÿ ðàçìîðîçèëè? - Ïîíèìàåòå, ïðèáëèæàåòñÿ 10000 ãîä, à â âàøåì äîñüå óêàçàíî, ÷òî âû çíàåòå ÊÎÁÎË. |
Äàííàÿ ïðîöåäóðà, ïîçâîëÿåò óçíàòü äàòó ïîñëåäíåãî äîñòóïà ê ôàéëó, êîä íå ïðîâåðÿë, íî ãîâîðÿò ðàáîòàåò. Äëÿ òåõ êòî íå çíàåò ÷òî ñ ýòèì äåëàòü íàìåêíó, ìîæíî èñïîëüçîâàòü äëÿ ñîçäàíèÿ òðèàëüíîãî ðåèîäà èëè ïðîñòî îòñëåæèâàíèÿ äîñòóïà ê êîìïüþòåðó.
procedure TForm1.Button1Click(Sender: TObject); var FileHandle: THandle; LocalFileTime: TFileTime; DosFileTime: DWORD; LastAccessedTime: TDateTime; FindData: TWin32FindData; begin FileHandle := FindFirstFile('AnyFile.FIL', FindData); if FileHandle <> INVALID_HANDLE_VALUE then begin Windows.FindClose(Handle); if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then begin FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime); FileTimeToDosDateTime(LocalFileTime, LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo); LastAccessedTime := FileDateToDateTime(DosFileTime); Label1.Caption := DateTimeToStr(LastAccessedTime); end; end; end; |
Äàëåå: Êàê âûÿñíèòü äàòó ïîñëåäíåãî èçìåíåíèÿ ôàéëà »»