Ich habe ein Junk-Verzeichnis, wo ich Downloads, einmalige Projekte, E-Mail-Entwürfe und andere Dinge, die für ein paar Tage nützlich sein können, aber nicht für immer gespeichert werden müssen. Um dieses Verzeichnis davon abzuhalten, mein Gerät zu übernehmen, schrieb ich ein Programm, das alle Dateien löscht, die älter als eine bestimmte Anzahl von Tagen sind, und einige Statistiken über die Anzahl der gelöschten Dateien und ihre Größe nur zum Spaß aufzeichnet.Wie lösche ich eine schreibgeschützte Datei?
Ich bemerkte, dass ein paar Projektordner viel länger lebten, als sie sollten, also begann ich nachzuforschen. Insbesondere schienen Ordner für Projekte, in denen ich SVN benutzt hatte, herumzuhängen. Es stellt sich heraus, dass die schreibgeschützten Dateien in den .svn-Verzeichnissen nicht gelöscht werden. Ich habe gerade einen einfachen Test für eine schreibgeschützte Datei durchgeführt und festgestellt, dass System.IO.File.Delete
und System.IO.FileInfo.Delete
keine schreibgeschützte Datei löschen.
Es ist mir egal, Dateien in diesem bestimmten Verzeichnis zu schützen; 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 sie entfernen?
Ich habe die Antwort akzeptiert, weil Gulzars Codebeispiel ist detaillierter als Tim Stewarts. Ich hätte das zuerst wählen sollen, aber aus irgendeinem Grund mochte ich Tim besser. Menschen sind seltsame Dinge! – OwenP
+1 für die Zeit, die Dinge im Universum ein bisschen mehr richtig zu machen. Wenn nur meine Entwickler zurückgehen und unsere eigenen kleinen Verfehlungen korrigieren würden, wären wir in der Lage, die Remedial Programming-Kurse zu stornieren! –