Windows-Dateisysteme verfügen über ein "schreibgeschütztes" Flag. Das ist einfacher, als DACL-Berechtigungen für einen so einfachen Effekt festlegen zu müssen.
Verwenden Sie an einer Eingabeaufforderung den Befehl ATTR. In der GUI-Shell sollte es in den Eigenschaften sein, obwohl die GUI möglicherweise etwas Komplexes tut und über das hinausgeht, was Sie wirklich wollten.
Wenn Sie ein Verzeichnis mit demselben Namen neu erstellen, können Sie "Vorherige Versionen wiederherstellen" darauf anwenden.
Aktualisieren
Ich habe auf einem Win7-System experimentiert. Das GUI-Löschen (ohne Papierkorb) ignoriert das R
Flag im Verzeichnis. Es gibt auch keine zusätzlichen Warnmeldungen, wie ich sie für H
und / oder S
Flags gesehen habe. Wenn Sie rd
über die Befehlszeile eingeben, wird der Zugriff wie erwartet verweigert . Sie können jedoch rd
ohnehin nicht nur ein nicht leeres Verzeichnis erstellen: "Datei löschen" und "Verzeichnis entfernen" sind unterschiedliche Befehle. Ein Befehl zum rekursiven Entfernen eines Verzeichnisses mit Inhalten entfernt den Inhalt und schlägt fehl, das jetzt leere Verzeichnis zu entfernen.
Der Schutz des Verzeichnisses selbst funktioniert in der geplanten GUI-Aktion also nicht. Und dies impliziert, dass ein ausgefeilterer Ansatz, um das Entfernen des Verzeichnisses selbst zu verhindern, nicht verhindert, dass es zuerst geleert wird! Sie sagten, Sie möchten weiterhin den normalen Zugriff auf das Verzeichnis zum Erstellen und Entfernen von Dateien, daher ist das vollständige Sperren keine Lösung für Sie.
Die beste Lösung scheint die symbolische Verbindung zu sein . Das Herstellen einer symbolischen Verknüpfung (neuer Stil, was Windows Vista und höher jetzt als symbolische Verknüpfung bezeichnet) mit dem Verzeichnis auf dem Desktop, wenn das Verzeichnis tatsächlich an einer anderen Stelle vorhanden ist, funktioniert in dem Sinne, dass beim Löschen des Desktopsymbols (Umschalt-Löschen, kein Papierkorb) das aktuelle Verzeichnis ist nicht betroffen, da nur der Link gelöscht wurde.
Shift-Delete des Desktopsymbols war es egal, ob es mit dem R
Attribut markiert war .
Ein Programm, das das standardmäßige Windows-Dialogfeld zum Öffnen von Dateien verwendet, navigierte ohne Probleme über den Symlink. Der Name des verknüpften Verzeichnisses wurde tatsächlich aufgelöst, sodass die geöffnete Datei der tatsächliche Name war. zB Desktop\MyFolder
wurde D:\scratch\MyFolder
als ich durch es navigierte.
Unter Verwendung eines Links im alten Stil (einer Kreuzung ) sah das Programm den Namen, wobei sich die Kreuzung noch im Pfad befand. zB ist C:\Users\john\Desktop\MyFolder\test.txt
die Tatsache, dass es sich um einen Link handelt, unsichtbar. Die GUI-Löschaktion behandelte sie jedoch weiterhin als Verknüpfung und verfolgte sie nicht unsichtbar.
In beiden Fällen funktioniert ein Programm, wenn es den Alias-Namen direkt verwendet. Aber Dateien, die manchmal mit einem Namen und manchmal mit einem anderen Namen angezeigt werden, können die Dinge verwirren.
Fazit
Verwenden Sie eine Junction auf dem Desktop mit dem Ordner, der sich wirklich an einer anderen Stelle befindet, und es ist völlig transparent, dass dies der Fall ist. Optional können Sie DACL verwenden, um ein versehentliches Löschen der Junction-Point-Datei auf dem Desktop zu verhindern. Haben Sie zumindest ein Skript, um es bei Bedarf neu zu erstellen.
Bonus
Ich habe das nicht ausprobiert, aber ich frage mich, ob Sie in "Neue Elemente" etwas haben könnten, um die Kreuzung oder den symbolischen Link neu zu erstellen. Klicken Sie dann mit der rechten Maustaste auf den jetzt leeren Desktop, wählen Sie "Neu ..." und wählen Sie "Desktop Junk" aus dem Menü. Lassen Sie alles, was Sie wirklich wollten, auf dem Desktop wiederherstellen.