web-dev-qa-db-fra.com

Comment puis-je empêcher qu'un dossier soit supprimé par inadvertance par moi-même?

J'ai un dossier très important sur mon bureau. Je nettoie de temps en temps mon bureau et je crains fort de supprimer le dossier mentionné par inadvertance. Existe-t-il un moyen d'éviter un tel désastre sans limiter mes fréquentes opérations de lecture-écriture sur le contenu du dossier? Remarque Cela ne me dérange pas de supprimer le contenu du dossier un à un à l'occasion, mais le dossier lui-même est important pour moi. S'il est supprimé, je perds beaucoup d'efforts.

41
codezombie

N'essayez pas d'éviter l'inévitable. Utilisez les sauvegardes et le contrôle de version.

Vous pouvez vous refuser l’autorisation de supprimer si . La suppression de fichiers et de dossiers dans ce répertoire constitue une autorisation distincte que vous pouvez également désactiver si nécessaire.

112
CodeCaster

Il existe une meilleure solution à votre problème: déplacez le dossier vers un emplacement plus approprié (par exemple,% USERPROFILE%\Documents).

Si vous devez avoir accès au dossier à partir du bureau, vous pouvez toujours créer un raccourci. Cela garantit que, même si vous supprimez accidentellement le raccourci, vous ne supprimez jamais le dossier ni son contenu précieux.

Si d'autres applications dépendent de la présence de ce dossier sur le bureau, vous pouvez créer un lien symbolique avec la commande "mklink". Étant donné que les liens symboliques sont gérés au niveau du système de fichiers (bien que les raccourcis soient des fichiers réels qui pointent simplement vers un autre emplacement), il ne devrait y avoir aucun problème de compatibilité avec les programmes qui essaient d'utiliser ce type de "raccourci" dans les chemins.

51
Michael Becker

Oui, potentiellement limité par votre version de Windows (les versions domestiques peuvent ne pas avoir la capacité d’ajuster la propriété). Notez également que la suppression de vos autorisations de suppression ne garantit pas que vous ne pouvez pas supprimer le dossier . J'ai été brûlé plusieurs fois.

Voici une méthode qui est généralement infaillible:

  1. Créer un nouvel utilisateur
  2. Attribuer la propriété du dossier que vous ne voulez pas pouvoir supprimer à ce nouvel utilisateur
  3. Supprimez l'accès de votre utilisateur pour supprimer le dossier. Assurez-vous que votre utilisateur dispose de tous les privilèges de lecture/écriture dans le dossier.

J'ai utilisé cette astuce de Windows NT à Windows 7. Parfois, il faut un peu modifier les paramètres avant de les rendre parfaits.

TESTEZ CECI SUR UN NOUVEAU DOSSIER (y compris la création de fichiers et de dossiers dans le dossier de test!).

Aussi : Suivez les conseils de "Utiliser les sauvegardes et le contrôle de version". Si les fichiers sont si importants, vous avez besoin d'au moins 2 copies.

7
Bill

Les systèmes de fichiers Windows ont un indicateur "lecture seule". C'est plus simple que de devoir définir des autorisations DACL pour un effet aussi simple.

Dans une invite de commande, utilisez la commande ATTR. Dans l'interface graphique, cela devrait être dans les propriétés, bien que l'interface graphique puisse faire quelque chose de complexe et aller au-delà de ce que vous souhaitiez vraiment.


De même, si vous recréez un répertoire portant le même nom, vous pouvez alors appliquer "restaurer les versions précédentes".


Mettre à jour

J'ai expérimenté sur un système Win7. La suppression de l'interface graphique (sans corbeille) ignore l'indicateurR du répertoire. Aucune invite supplémentaire ne le signalant, comme je l'ai déjà vu pour les indicateurs H et/ou S. L'émission de rd à partir de la ligne de commande donne à un accès refusécomme prévu. Cependant, vous ne pouvez quand même pas rd un répertoire non vide: supprimer le fichier et supprimer le répertoire sont des commandes différentes. Une commande permettant de supprimer de manière récursive un répertoire avec un contenu supprimera le contenu et échouera pour supprimer le répertoire maintenant vide.

Donc, protéger le répertoire lui-même ne fonctionne pas dans l'action de l'interface graphique que vous avez en tête. Et cela implique que toute approche plus sophistiquée visant à empêcher le répertoire lui-mêmed'être supprimé ne l'empêchera pas de le vider en premier! Vous avez dit que vous souhaitiez toujours un accès normal dans le répertoire pour créer et supprimer des fichiers. Par conséquent, le verrouiller complètement n'est pas une solution pour vous.

La meilleure solution semble être le lien symbolique . Faire un lien symbolique (nouveau style, ce que Windows Vista et les versions ultérieures appellent maintenant un lien symbolique) vers le répertoire sur le bureau, lorsque le répertoire existe réellement ailleurs, fonctionne dans le sens où Je supprime l'icône du bureau (shift-delete, pas de corbeille), le répertoire actuel n'est pas affecté car seul le lien a été supprimé.

Maj-Suppr de l'icône du bureau ne se souciait pas de savoir si elle était marquée avec l'attribut R.

Un programme utilisant la boîte de dialogue standard d'ouverture de fichier Windows a parcouru le lien symbolique sans aucun problème. En fait, le nom du répertoire lié a été résolu. Le fichier ouvert était donc le realname; par exemple. Desktop\MyFolder est devenu D:\scratch\MyFolder au fur et à mesure de ma navigation.

En utilisant un lien de style ancien (une jonction), le programme a vu le nom avec la jonction toujours dans le chemin; par exemple. C:\Users\john\Desktop\MyFolder\test.txt donc le fait qu'il s'agisse d'un lien est invisible. Cependant, l'action de suppression de l'interface graphique le traitait toujours comme un lien, pasle suivant de manière invisible.

Quoi qu'il en soit, si un programme utilisedirectement le nom avec alias, cela fonctionnera. Mais avoir des fichiers parfois vus avec un nom et parfois l’autre peut confondre les choses.

Conclusion

Utilisez une jonction sur le bureau avec le dossier situé vraiment ailleurs et il sera complètement transparent que ce soit ce qui se passe. Vous pouvez éventuellement utiliser DACL pour empêcher la suppression accidentelle du fichier de point de jonction sur le bureau. Au moins, ayez un script pour le recréer au besoin.

Prime

Je n'ai pas essayé cela, mais je me demande si vous pourriez avoir quelque chose dans les "nouveaux éléments" pour recréer la jonction ou le lien symbolique? Ensuite, faites un clic droit sur le bureau maintenant vide, choisissez Nouveau ... puis choisissez "Bureau indésirable" dans le menu. Faites-le restaurer tout ce que vous vouliez vraiment sur le bureau.

5
JDługosz

Vous pouvez également envisager d'activer la fonctionnalité Historique des fichiers de Windows 8.1. Cela permettra à votre système de conserver automatiquement un historique des modifications apportées à vos fichiers et dossiers. Il est préférable d'utiliser avec un emplacement de stockage externe, mais peut également être utilisé avec un lecteur local.

http://blogs.msdn.com/b/b8/archive/2012/07/10/protecting-user-files-with-file-history.aspx

2
barbecue

Une solution efficace pourrait être de déplacer le dossier hors du bureau, puis de configurer une jonction NTFS à l'aide de la commande MKLINK.

C:\Utilisateurs\Administrateur> MKLINK 
 
 Crée un lien symbolique. 
 
 MKLINK [[/ D] | [/ H] | [/ J]] Lien cible 
/D Crée un lien symbolique dans un répertoire. La valeur par défaut est un lien symbolique de fichier 
. 
/H Crée un lien fixe au lieu d'un lien symbolique. 
/J Crée une jonction d'annuaire. 
 Le lien spécifie le nouveau nom du lien symbolique. 
 Cible spécifie le chemin (relatif ou absolu) auquel se réfère le nouveau lien 
. 

Donc, dans votre cas, la commande serait:

MKLINK /J %userprofile%\Desktop\ImportantFolder D:\ImportantFolder

D:\ImportantFolder est le dossier actuel et %userprofile%\Desktop\ImportantFolder est la jonction.

Notes:

  • La jonction ne doit pas nécessairement porter le même nom que le dossier source.
  • La jonction n'est pas une copie, c'est en fait une redirection, un autre moyen d'accéder à votre dossier. Imaginez-le comme la version pliée d'un raccourci normal (* .lnk).
  • Les jonctions diffèrent du raccourci normal vers les dossiers en ce qu'elles sont totalement transparentes pour les programmes.
  • Si la jonction est supprimée, le dossier actuel n'est pas supprimé.
  • Mais toute modification de fichier revient à aller à D:\ImportantFolder et à faire des choses. Donc, si vous supprimez un fichier passwords.txt dans la jonction, vous l’avez également supprimé de d:/ImportantFolder.
  • Si vous supprimez accidentellement la jonction, vous la créez à nouveau.

Graphique (plus efficace) Plus facile) Way (avec extension de menu contextuel)

Vous pouvez plutôt installer Link Shell Extension , puis vous déplacez votre dossier ailleurs, faites un clic droit dessus et sélectionnez Pick link source..., puis faites un clic droit sur votre bureau et sélectionnez drop as.... -> Junction. Et vous avez terminé.

C'est la première application que j'installe sur de nouveaux systèmes, car c'est une solution extrêmement utile. Je le recommande vivement si vous devez gérer des jonctions ou des liens symboliques sur votre PC.

1
beppe9000

Vous pouvez sauvegarder tous vos fichiers et dossiers dans OneDrive. Vous pouvez l'utiliser gratuitement mais limité à 15 Go. Toutefois, si vous avez souscrit un abonnement à Office 365, vous disposez de 1 To de storge dans OneDrive, lequel est inclus.

0
zeleena