AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Probleme beim setzen des Änderungsdatums einer Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim setzen des Änderungsdatums einer Datei

Ein Thema von gkoeder · begonnen am 30. Okt 2007 · letzter Beitrag vom 31. Okt 2007
 
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Probleme beim setzen des Änderungsdatums einer Datei

  Alt 30. Okt 2007, 16:26
Hab gerade die WinAPI-Funktionen ausprobiert und das setzen des korrekten Dateidatums und Uhrzeit funktioniert nun perfekt! Danke für den Hinweis und die Lösung!

Zitat von himitsu:
...
versuch es mal direkt mit der WinAPI:
Delphi-Quellcode:
var
LineCounter: Integer;
CurrentFile: String;
FileHandle: THandle;
OldFileTime: tFileTime;
begin
...
// Aktuellen Dateinamen in String schreiben zur besseren Übersichtlichkeit
CurrentFile := Memo_FileList.Lines[LineCounter];
// Überprüfen, ob die referenzierte Datei auch wirklich existiert
if FileExists(CurrentFile) then
   Begin
     // Aktuelles Änderungsdatum der Datei erfassen
     FileHandle := CreateFile(PChar(CurrentFile), GENERIC_READ,
       FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, nil);
     GetFileTime(FileHandle, nil, nil, OldFileTime);
     CloseHandle(FileHandle);

     // Änderung an den Dateieigenschaften vornehmen
     If not SetFileSummaryInfo(CurrentFile, FMTID_DocSummaryInformation, PIDDSI_CATEGORY, GetCategoryType) Then
       Memo_Log.Lines.Add('Setzen der Kategorie fehlgeschlagen: ' + CurrentFile);

     // Änderungsdatum wieder in Datei zurückschreiben (UTC-Format)
     FileHandle := CreateFile(PChar(CurrentFile), GENERIC_WRITE,
       FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, nil);
     SetFileTime(FileHandle, nil, nil, OldFileTime);
     CloseHandle(FileHandle);
   end else
   Begin
     Memo_Log.Lines.Add('Datei nicht gefunden: ' + CurrentFile);
   end;
end;
...
Zitat von himitsu:
PS: dieses =true und =false ... wäre besser, wenn du dir solche Vergleiche abgewöhnst
(gibt dazu einige Threads im Forum, warum sowas Probleme beeiten könnte)
und dann hab ich das =false erst übersehn und hab mich grad gewundert warum die Fehlermeldung "Setzen der Kategorie fehlgeschlagen" bei 'nem "positivem"Ergebnis ausgelöst wird. (if not xyz = wenn nicht xy ... versteht sich och leichter ^^)
Hmm ... ich verwende diese Vergleiche relativ häufig, um auf die Rückgabewerte entsprechend reagieren zu können. Wie kann ich dies besser machen bzw. kannst Du mir einen entsprechenden Thread nennen?

Danke!

Gruß
Gerald
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz