Autor |
Beitrag |
Bergmann89
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Fr 30.01.09 20:22
HI,
wie der Titel schon sagt würd ich gern wissen wann eine Datei geändert wurde.
Gibts da ne Funktion die das ausließt?
MfG & Thx Bergmann.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 30.01.09 20:29
Versuch es mal mit GetFileTime. Für Dich wäre dann der Parameter lpLastWriteTime interessant.
|
|
Bergmann89
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Sa 31.01.09 16:08
HI,
ich komm mit der Fukntion irgendwie nich klar, kannst du vlt ma noch n Anwendungsbeispiel posten?
MfG & Thx Bergmann.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 31.01.09 16:31
Versuch es mal mit dieser Funktion:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function FileLastModified(const sFile: TFilename): TDateTime; var sr: TSearchRec; tzi: TTimeZoneInformation; lt, st: TSystemTime; begin if FindFirst(sFile, faAnyFile, sr) = 0 then begin GetTimeZoneInformation(tzi); FileTimeToSystemTime(sr.FindData.ftLastWriteTime, st); SystemTimeToTzSpecificLocalTime(@tzi, st, lt); Result := SystemTimeToDateTime(lt); SysUtils.FindClose(sr); end else Result := 0; end; |
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 31.01.09 16:45
Ein Beispiel findest du hier:
msdn.microsoft.com/e...ibrary/ms724926.aspx
Ich habe das mal nach Delphi übersetzt (ungetestet, hab grad kein Delphi hier): Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| function MyGetFileTime(FileName: PChar): TDateTime; var FileHandle: Cardinal; LastWriteTime: TFileTime; UTCSystemTime, LocalSystemTime: TSystemTime; begin Result := 0; FileHandle := CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0); if FileHandle = INVALID_HANDLE_VALUE then Exit; if not GetFileTime(FileHandle, nil, nil, @LastWriteTime) then Exit; FileTimeToSystemTime(LastWriteTime, UTCSystemTime); SystemTimeToTzSpecificLocalTime(nil, UTCSystemTime, LocalSystemTime); Result := SystemTimeToDateTime(LocalSystemTime); CloseHandle(FileHandle); end; | Verwendungsbeispiel: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var WriteTime: TDateTime; begin if OpenDialogX.Execute then begin WriteTime := MyGetFileTime(PChar(OpenDialogX.FileName)); if WriteTime <> 0 then ShowMessage(DateTimeToStr(WriteTime)) else ShowMessage('Fehler'); end; |
|
|
|