Accueil Portail ScL
Nouveautés Nos Articles Lexique Participez ! Forum
Système   »»   Supprimer un fichier rebel (par Zéfiris)
Bas de Page

Supprimer un fichier rebel

Ce tutoriel s'adresse en priorité aux utilisateurs du Sytème d'Exploitation Windows, mais les notions abordées sont indépendantes de celui-ci. Le problème que nous nous proposons de traiter ici concerne l'accès aux ressources, et plus particulièrement aux fichiers.

Combien de fois avez-vous essayé de supprimer un fichier vidéo endommagé, ou incomplet, suite, par exemple, à un déplacement interrompu, volontairement ou non. Un outil tel que SuperCopieur - dont on ne peut rapidement plus se passer - permettant de reprendre un déplacement, vous aurez en cas d'interruption un fichier tronqué. Ce fichier n'a en lui-même rien de "défectueux", seulement si vous essayez de le lire, vous aurez certainement - après une attente qui peut parfois être très longue - un message vous invitant à passer votre chemin. Un tel fichier n'étant en lui-même que d'une importance assez faible, vous penserez naturellement à le virer, et là vos soucis commencent !

Vous obtiendrez souvent ce genre de message : "Ce fichier est actuellement utilisé par un processus".

Nous allons faire un peu de théorie, pour ceux que cela intéresse. Pour ceux qui sont un peu pressés, vous pouvez passer directement à la partie pratique, et revenir ensuite - si celle-ci vous a convaincu - lire par curiosité le pourquoi du comment.

Sommaire

    Théorie
  1. Généralités sur les Accès aux ressources
  2. Accès concurrents, verrou
  3. Pratique
  4. Identifier le(s) processus maintenant le verrou
  5. Supprimer le Fichier en question

Sommaire Généralités sur les Accès aux ressources

Nous allons parler un peu ici du fonctionnement de votre système d'exploitation, qu'il soit propriétaire ou libre, qu'il satisfasse la norme POSIX (comme Linux, ou les autres Unices), ou non (comme la majorité des Windows, NT étant le moins éloigné de cette norme).

Avant toutes choses, il convient de préciser que nous n'aborderont pas ici les accès restreints par des droits, qui sont normalement connus de toute personne utilisant un disque formaté en NTFS, ext2 ou 3 (mais pas FAT) : un utilisateur lambda ne peut accéder aux fichiers d'un autre utilisateur, a fortiori encore moins ceux du compte Administrateur/root (c'est la base de toute la sécurité). Le "normalement connu" est dû au fait que sous Windows, la majorité des utilisateurs se connectent en Administrateur, ou, au mieux, en Utilisateur avec Pouvoir, et ont donc accès à quasiement toutes les ressources sans avoir à se préoccuper de droits d'accès.

Notons au passage que cette habitude des plus nocives fait la grande force des virus windowsiens, qui, exécutés dans le compte d'un Utilisateur "puissant", peuvent causer de graves dommages.
Ceci étant dit, nous considèrerons donc un fichier dont vous êtes le propriétaire, ou sur lequel vous avez au moins les droits de Modification (pour Windows), d'Ecriture (pour Linux).

Sommaire Accès concurrents, verrou

De nos jours, l'usage du multi-tâches, voire du multi-processeurs est très répandu. Malgré cette simplicité apparente, de nombreux problèmes se posent, en particulier celui de l'accès concurrent à des ressources telles que les fihiers : par exemple, si deux programmes ouvrent simultanément un fichier en écriture, et si chacun y apporte des modifications ... quelle version devra être considérée comme la bonne ?
Pour pallier ce problème, des systèmes de drapeaux ont été mis en place au plus bas niveau de la gestion de telles ressources, que nous pouvons présenter sommairement ainsi : lorsqu'un processus souhaite ouvrir un fichier avec certains droits, il doit d'abord s'assurer que cette ressource est accessible avec ces droits !

Un exemple qui nous concerne de près, vous essayez de supprimer un fichier, alors que celui-ci est en cours d'utilisation !

Vous l'aurez peut-être deviné, pour pouvoir supprimer un fichier, celui-ci ne doit pas être en cours de lecture, encore moins d'écriture.

Attention, la majorité des programmes comme le Bloc-Note(ou Word) ne maintiennent pas un accès permanent au fichier pendant son utilisation : le fichier texte est ouvert en lecture, lu, et refermé. En conséquence, il n'est pas protégé de l'effacement même si vous pouvez le voir, et même le modifier ; il ne s'agit en fait que d'une copie en mémoire de son contenu ... d'où le message lorsque vous fermez le Bloc-Note après modification d'un fichier : "souhaitez-vous enregistrer les modifications ?". Cette opération ouvrira ce même fichier en écriture, écrasera toutes les données précédentes par les nouvelles, et le refermera. Pendant toute la durée de cette opération (quasiement instantanée), le fichier est vérouillé par le processus "Notepad.exe".

Pour les puristes, il s'agit d'un abus de langage, mais "processus créé à partir du binaire 'notepad.exe'" est un peu lourd. Pourtant, on comprend mieux de cette manière que le fichier "notepad.exe" peut donner naissance à plusieurs processus simultanément (vous pouvez donc le lancer plusieurs fois en même temps, si c'est pas chouette tout ça ! :D ), et que donc, Exécuter un fichier (ou le Lire) ne positionne pas un drapeau exclusif contre une autre lecture ou exécution ; mais bien un drapeau anti-modification (a fortiori anti-effacement).

Sommaire Identifier le(s) processus maintenant le verrou

Comme expliqué dans la partie précédente, avant de pouvoir supprimer un fichier quelconque de votre disque dur, clef, ou autre support ; vous devez fermer tous les processus qui accèdent à ce fichier.

Mais, comment savoir quel processus utilise mon fichier ??

La première possibilité est de tenter de le deviner ; s'il s'agit d'un fichier "utilisateur", vous devez facilement pouvoir deviner quel programme peut l'utiliser, si vous ne trouvez pas, ou si il s'agit d'un fichier système, utilisez un outil comme Process Explorer téléchargeable sur le site www.sysinternals.com. S'il s'agit du problème récurrent signalé en introduction : un fichier vidéo abîmé ou incomplet, il s'agit vraisemblablement de l'explorer lui-même, qui a la facheuse tendance de vouloir vous afficher, sinon une miniature, au moins toutes sortes d'informations telles que la longueur de la vidéo en question ... etc, et cherche donc à récupérer ces informations en ouvrant ce fichier en lecture. Dans la mesure où ce fichier est abîmé/incomplet, il peut chercher en vain pendant plusieurs heures, et pendant tout ce temps, vous ne pouvez évidemment pas l'effacer ni le déplacer.

Sommaire Supprimer le Fichier en question

Arrêter le processus responsable de ce verrou

Une fois le processus identifié - explorer.exe dans la majorité des cas -, il vous faut l'arrêter. Pour cela, ouvrez le Gestionnaire des tâches (Task Manager), activez le second onglet Processus (si les onglets sont invisibles, utilisez la combinaison de touches Ctrl Tab), et enfin sélectionnez le processus en question. Terminez enfin le processus.

Attention, toute terminaison de processus par ce moyen peut entraîner une perte de données !
S'il s'agit de "explorer.exe" cela stoppera vos fenêtres de copie et de déplacement (sauf si vous utilisez un outil tel que Super Copieur), mais normalement vous ne perdrez rien :)

Supprimer le fichier

Ici, deux choix se présentent à vous :

Aide pour l'utilisation de la fenêtre console

Certains n'apprécient pas ce type d'interface, mais il est parfois utile de savoir comment s'en servir. Voici quelques commandes dont vous aurez besoin pour effacer votre fichier ; vous n'avez qu'à tapper à la suite de l'invite de commande (souvent "C:\Documents and Settings\Votre profil") Un petit exemple :
C:\Documents and Settings\Zéfiris>d:

D:\>cd Vidéos

D:\Vidéos>dir *très*.*
 Le volume dans le lecteur D s'appelle STOCKAGE
 Le numéro de série du volume est 0123-4567

 Répertoire de D:\Vidéos

25/04/2005  20:41                10 fichier-avec-un-nom-très-long.avi
               1 fichier(s)               10 octets
               0 Rép(s)   6 558 875 648 octets libres

D:\Vidéos>del *très*.*

D:\Vidéos>
      
Une étoile * est un caractère joker qui peut remplacer n'importe quels caractères. Si vous l'utilisez dans le nom de votre fichier, il est fortement recommandé d'effectuer un dir avec le même nom avant pour vérifier que vous n'effacerez qu'un unique fichier ! (comme présenté dans l'exemple).

Enfin, dernière phase de cette suppression, si vous avez eu besoin de terminer votre explorer, vous ne devez plus avoir d'icônes sur votre bureau, ni de barre de tâches.
Si votre fenêtre console est toujours ouverte, tappez simplement "explorer", sinon utilisez le bouton "Nouvelle tâche ..." du Gestionnaire de Tâches (Ctrl Alt Suppr).

Ouf !! Votre fichier a disparu !!

Cette opération peut avoir fait disparaître certaines icônes de votre SysTray (espace à côté de l'heure tout en bas à droite de vote écran). Vous pouvez redémarrer Windows pour que tout revienne en ordre, mais a priori les services associés n'ont pas été arrêtés, ils sont simplement cachés (héhé)

Il est à noter que cette méthode est générique et permet aussi de supprimer des fichiers infectés par des Virus. La méthode de recherche du processus utilisant une ressource fichier est similaire pour l'utilisation d'une DLL (Process Explorer fait ça aussi) dont sont friands les virus.

Astuce :
Si vous souhaitez désactiver totalement l'affichage des Miniatures, et de toutes les infos des fichiers multimédias ; Faites Démarrer -> Exécuter et tappez regsvr32 /u shmedia.dll

Bon courage !!

Haut de Page
Oeuvres de Zéfiris :
-> Gérez facilement vos correctifs (patchs) Windows !
-> Lexique de termes techniques
-> Page Liens
-> Récupérer son IP externe par Script (Linux/Windows)
-> Routage, mode actif et mode passif
-> Supprimer un fichier rebel

Tous les documents présents dans cette Galerie sont l'oeuvre des personnes de la Team ScL.
Ils restent leur propriété et ne paraissent sur ce site qu'avec leur autorisation.

Si vous souhaitez proposer un article, faites-le auprès du Conservateur de la Bibliothè ScL.

Conservateur de la Bibliothèque ScL : Zéfiris
Le contacter : Profil sur le Forum