Ich habe ein Junk-Verzeichnis, in dem ich Downloads, einmalige Projekte, E-Mail-Entwürfe und andere verschiedene Dinge wegwerfe, die für einige Tage nützlich sein können, aber nicht für immer gespeichert werden müssen. Um zu verhindern, dass dieses Verzeichnis meinen Computer übernimmt, habe ich ein Programm geschrieben, das alle Dateien löscht, die älter als eine bestimmte Anzahl von Tagen sind, und nur zum Spaß einige Statistiken über die Anzahl der gelöschten Dateien und deren Größe protokolliert.
Ich bemerkte, dass einige Projektordner viel länger lebten als sie sollten, also begann ich zu untersuchen. Insbesondere schienen Ordner für Projekte, in denen ich SVN verwendet hatte, zu bleiben. Es stellt sich heraus, dass die schreibgeschützten Dateien in den .svn-Verzeichnissen nicht gelöscht werden. Ich habe gerade einen einfachen Test auf einer schreibgeschützten Datei und entdecken , dass System.IO.File.Delete
und System.IO.FileInfo.Delete
nicht eine schreibgeschützte Datei löschen.
Der Schutz von Dateien in diesem bestimmten Verzeichnis ist mir egal. Wenn etwas Wichtiges drin ist, ist es am falschen Ort. Gibt es eine .NET-Klasse, die schreibgeschützte Dateien löschen kann, oder muss ich nach schreibgeschützten Attributen suchen und diese entfernen?