Entwickler-Ecke
Dateizugriff - Erstellungs-Datum von Verzeichnissen auslesen.
green-sound - So 20.04.03 16:50
Titel: Erstellungs-Datum von Verzeichnissen auslesen.
Hallo erstmal :D
Ich habe folgendes Problem:
Ich soll ein kleines Programm schreiben das alle Verzeichnisse eines Laufwerkes die älter als 2 Wochen sind löscht.
Die Procedur zum löschen der Verzeichnisses hab ich schon!!
Wie krieg ich jetzt aber raus welches Verzeichnis älter als 2 Wochen ist!
Hoffe ihr könnt mir weiterhelfen...
mfg green-sound
Blackout - Mo 21.04.03 06:25
hi green-sound,
hast du denn schon eine Funktion womit du Ordner auf einem Laufwerk suchen kannst?
Wenn nicht benutze die Suchfunktion im Forum ich denke da lässt sich was passendes finden.
Um das Erstellungsdatum eines Ordners zu bekommen kannst du folgende Funktion benutzen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| Function GetFileDate(TheFile: String): TDateTime;
Var SearchRec: TSearchRec; DT: TFileTime; ST: TSystemTime; Begin
Result:= 0; Try If (FindFirst(TheFile, faAnyFile, SearchRec) = 0) Then Begin FileTimeToLocalFileTime(SearchRec.FindData.ftCreationTime, DT); FileTimeToSystemTime(DT, ST); Result:= EncodeDate(st.wYear, st.wMonth, st.wDay); End; Finally FindClose(SearchRec); End; End; |
Und so könnte man die Funktion nutzen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject);
Var FileDate: TDate; Directory: String;
Begin
Directory:= 'C:\Windows'; // Beispiel FileDate:= StrToDate(DateToStr(GetFileDate(Directory)+14)); If FileDate = Now Then ShowMessage('Der Ordner "'+Directory+'" ist 14 Tage alt') Else If FileDate > Now Then ShowMessage('Der Ordner "'+Directory+'" ist keine 14 Tage alt') Else If FileDate < Now Then ShowMessage('Der Ordner "'+Directory+'" ist über 14 Tage alt');
End; |
Ich brauchte diese Funktion auch einmal hab den Aufruf jetzt schnell etwas verständlicher umgeschrieben musst eben nur ein wenig ändern.
Ich hoffe ich konnte dir helfen
green-sound - Di 22.04.03 07:02
Hey Dankeschön!!
Aber bei deiner Funktion erhalte ich ne Fehlermeldung, mit der ich nichts anfangen kann. Vieleicht kannst du mir ja nochmal kurz weiterhelfen?
Die Meldung lautet:
| Zitat: |
Inkompatible Typen: 'Cardinal' und 'TSearchRec'
|
und kommt an folgender Stelle:
Quelltext
1: 2: 3:
| Finally FindClose(SearchRec); //genau hier!! End; |
Blackout - Di 22.04.03 12:54
Ich habs bei mir jetzt nochmal getestet, läuft wunderbar :?:
Probier mal das hier:
Quelltext
1: 2: 3:
| Finally Sysutils.FindClose(SearchRec); End; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!