Autor Beitrag
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: 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



BeitragVerfasst: Fr 30.01.09 20:29 
Versuch es mal mit GetFileTime. Für Dich wäre dann der Parameter lpLastWriteTime interessant.
Bergmann89 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: 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



BeitragVerfasst: Sa 31.01.09 16:31 
Versuch es mal mit dieser Funktion:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19273
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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):
ausblenden 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, 00);
  if FileHandle = INVALID_HANDLE_VALUE then
    Exit;
  if not GetFileTime(FileHandle, nilnil, @LastWriteTime) then
    Exit;
  FileTimeToSystemTime(LastWriteTime, UTCSystemTime);
  SystemTimeToTzSpecificLocalTime(nil, UTCSystemTime, LocalSystemTime);
  Result := SystemTimeToDateTime(LocalSystemTime);
  CloseHandle(FileHandle);
end;
Verwendungsbeispiel:
ausblenden 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;