I file system di Windows hanno un flag di "sola lettura". È più semplice che dover impostare le autorizzazioni DACL per un effetto così semplice.
In un prompt dei comandi, utilizzare il comando ATTR. Nella shell della GUI dovrebbe essere nelle Proprietà, anche se la GUI potrebbe fare qualcosa di complesso e al di là di quello che volevi veramente.
Inoltre, se si ricrea una directory con lo stesso nome, è possibile applicare "Ripristina versioni precedenti" su di essa.
Aggiornare
Ho sperimentato su un sistema Win7. L'eliminazione della GUI (senza cestino) ignora il R
flag nella directory. Non ci sono avvisi aggiuntivi al riguardo, come ho visto per H
e / o S
flag. L'emissione rd
dalla riga di comando fornisce l' accesso negato come previsto. Tuttavia, non è possibile solo rd
una directory non vuota: eliminare il file e rimuovere la directory sono comandi diversi. Un comando per rimuovere ricorsivamente una directory con i contenuti rimuoverà i contenuti e non riuscirà a rimuovere la directory ora vuota.
Quindi proteggere la directory stessa non funziona nell'azione della GUI che hai in mente. E implica che qualsiasi approccio più elaborato per impedire la rimozione della directory stessa non impedirà che venga prima svuotato! Hai detto che desideri comunque l'accesso normale all'interno della directory per creare e rimuovere i file, quindi bloccarlo completamente non è una soluzione per te.
La migliore soluzione sembra essere il collegamento simbolico . Creare un collegamento simbolico (nuovo stile, quello che Windows Vista e sopra ora chiamano un collegamento simbolico) alla directory sul desktop, quando la directory esiste effettivamente da qualche altra parte, funziona nel senso che se elimino l'icona del desktop (shift-delete, nessun cestino) la directory effettiva non è interessata poiché è stato eliminato solo il collegamento.
Maiusc-Canc dell'icona del desktop non importava se era contrassegnato con l' R
attributo.
Un programma che utilizza la finestra di dialogo standard di apertura file di Windows ha navigato attraverso il collegamento simbolico senza problemi. In realtà ha risolto il nome della directory collegata, quindi il file aperto era il vero nome; ad esempio è Desktop\MyFolder
diventato D:\scratch\MyFolder
come ho navigato attraverso di esso.
Usando un collegamento vecchio stile (una giunzione ), il programma ha visto il nome con la giunzione ancora nel percorso; ad esempio C:\Users\john\Desktop\MyFolder\test.txt
, il fatto che si tratti di un collegamento è invisibile. Tuttavia, l'azione di eliminazione della GUI l'ha comunque trattata come un collegamento, non seguendolo invisibilmente.
In entrambi i casi, se un programma fa utilizzerà il nome alias direttamente che funzionerà. Ma avere file a volte visti con un nome e a volte l'altro potrebbe confondere le cose.
Conclusione
Usa un Junction sul desktop con la cartella che si trova davvero altrove e sarà completamente trasparente che questo è ciò che sta accadendo. Facoltativamente, utilizzare DACL per impedire la cancellazione accidentale del file del punto di giunzione sul desktop. Almeno, avere uno script per ricrearlo quando necessario.
indennità
Non ho provato questo, ma mi chiedo se potresti avere qualcosa in "nuovi elementi" per ricreare la giunzione o il collegamento simbolico? Quindi fai clic con il pulsante destro del mouse sul desktop ora vuoto, scegli Nuovo ... e scegli "Desktop Junk" dal menu. Fallo ripristinare sul desktop tutto ciò che veramente desideravi.