Nouveautés | Nos Articles | Lexique | Participez ! | Forum |
Bas de Page |
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.
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.
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 !
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).
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.
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.
Ici, deux choix se présentent à vous :
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.
regsvr32 /u shmedia.dll
Bon courage !!
Haut de Page |
Oeuvres de Zéfiris : |
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.
|