Dans les systèmes Windows, renommer des fichiers est-il fonctionnellement similaire à les supprimer?

9

Selon ma compréhension du système de fichiers Windows, un programme peut lire un fichier en fonction de son chemin, si ce chemin est modifié, alors quel que soit le programme utilisé pour lire ce fichier, il ne pourra plus le faire. Cela signifierait que, pour tous les programmes du système Windows qui dépendent d'un fichier, les conséquences de la suppression et du renommage d'un fichier doivent être les mêmes.

Le cas spécifique dont dépend cette réponse est un système intégré fonctionnant sous Windows 2000, le manuel du fournisseur de services guide l'utilisateur pour supprimer les fichiers dans un dossier. En tant qu'utilisateur méfiant, j'ai simplement copié les fichiers dans un chemin appelé "dossier_sauvegarde" et laissé le dossier vide.

Au cours de cette opération, le système a régressé et n'a pas pu fonctionner correctement. Le fournisseur de services qui a rédigé le manuel a donc été appelé. Leur diagnostic était que la base de données était corrompue car il y avait 2 bases de données en parallèle, pointant vers "folder_backup" comme deuxième base de données. À ma connaissance, les fichiers à l'intérieur de "D: / folder_backup" auraient été inertes, sauf dans le cas exceptionnel d'un programme recherchant des dossiers commençant par "folder" ou lisant tout le contenu du fichier "D: /".

De quelles manières non obscures un fichier renommé peut-il encore être consulté par un système, qui aurait autrement été impossible si le fichier avait été supprimé?

Tomas Zubiri
la source
1
Avez-vous en fait copié les fichiers (en avoir deux copies à un moment donné et ensuite supprimer l'original) ou simplement les déplacer?
GSerg
1
Le système fonctionnait-il au moment de la lecture de ces bases de données? Il est possible sous Windows (Linux aussi) de copier des fichiers alors qu'ils sont ouverts (selon l'application ouvrant les fichiers dans certains "modes"). Cela entraînerait probablement des copies corrompues, BTW.
davidbak
@davidbak Negative, l'application a été fermée lors du changement de nom des fichiers.
Tomas Zubiri
@GSerg Je crois que j'ai renommé le dossier, puis j'ai autorisé l'installation de l'application à le recréer.
Tomas Zubiri
Comparez avec les systèmes de fichiers Unix, où l'ID d'un fichier est un entier, et un nom de fichier n'est vraiment qu'un mappage des noms vers l'ID, et un fichier n'est pas supprimé tant qu'il n'a pas de nom et qu'aucun processus ne l'a ouvert. Renommer un fichier sous Unix ajoute un nouveau mappage de nom, puis supprime l'ancien nom, donc à aucun moment le fichier n'est supprimé.
Raedwald

Réponses:

16

L'embarras du choix vraiment.

Harry Johnston
la source
Wow, je ne m'attendais pas à autant de façons de casser quelque chose en renommant un fichier. Merci!
Tomas Zubiri
@ wizzwizz4 2000 est NT
zdimension
-2

Un fichier renommé est toujours accessible par un autre programme.

  • Une façon dont un fichier renommé peut toujours être consulté par un autre programme est une variable d'environnement qui est définie sur le nouveau chemin de fichier par le même programme qui a renommé le fichier. Le programme qui souhaite accéder audit fichier utilise la variable d'environnement pour le chemin de fichier au lieu d'un chemin de fichier fixe défini en interne.

  • Une autre façon est que le fichier soit le seul fichier dans un dossier spécifique. Le programme qui souhaite utiliser ce fichier sait qu'il ne doit jamais y avoir plus d'un fichier dans ce dossier spécifique, mais sait que le nom de fichier peut changer mais que le répertoire auquel il appartient restera le même. Le programme utilise simplement le premier fichier qu'il peut trouver dans ce dossier, qui devrait toujours être ce fichier. Cependant, ce n'est pas une bonne pratique et vous êtes mieux avec une variable d'environnement.

A défaut, certains programmes demanderont automatiquement à l'utilisateur de localiser le fichier avant de continuer à exécuter son code

J03L
la source