Eine Anwendung erstellt munter Dateien in
TPath.GetTempPath()
(%userprofile%\AppData\Local\Temp). Bislang ist anscheinend jeder davon ausgegangen dass Windows diese Dateien irgendwann wohl von alleine löschen wird.
Ich stelle gerade etwas schockiert fest,
dass dem wohl nicht so ist. Wie kommen wir aus dieser Nummer wieder heraus? Die temporären Dateien werden teilweise mit externen Programmen wie bspw. einem PDF-Betrachter geöffnet. Ich weiß also nicht wann sie nicht mehr in Gebrauch sind.
Meine Idee wäre nun folgende:
- Die Daten gehen ab sofort in ein Unterverzeichnis des Temp-Ordners
- Immer wenn man eine Datei in den Temp-Ordner werfen will wird vorher geprüft ob sich Dateien darin befinden die gelöscht werden dürfen (bspw. älter als 5 Tage)
- Diese werden entfernt, erst dann geht es weiter
Das sollte relativ sicher sein, oder? Ich will nicht die ganze Zeit erstelle Dateien im Hintergrund tracken. Es kann auch sein dass die Anwendung wochen- und monatelang am Stück durchläuft, die Systeme haben auch nur eine relativ kleine SSD: Prüfen bei Anwendungsstart und -Ende reicht nicht.
Hat noch jemand eine bessere Idee? Ich weiß noch dass man in der Registry eine Liste von Dateien anlegen kann die beim nächsten Reboot gelöscht werden sollen, aber das ist uU zu spät und man braucht dafür Admin-Rechte.