Según mi comprensión del sistema de archivos de Windows, un programa puede leer un archivo de acuerdo con su ruta, si se cambia esta ruta, entonces cualquier programa utilizado para leer este archivo, ya no puede hacerlo. Esto significaría que, para cualquier programa en el sistema de Windows que dependa de un archivo, las consecuencias de eliminar y renombrar un archivo deben ser las mismas.
El caso específico del que depende esta respuesta es un sistema integrado que se ejecuta en Windows 2000, el manual del proveedor de servicios guía al usuario para eliminar los archivos dentro de una carpeta. Como usuario cauteloso, simplemente copié los archivos en una ruta llamada "folder_backup", y dejé la carpeta vacía.
Durante esta operación, el sistema retrocedió y no pudo funcionar correctamente. Entonces se llamó al proveedor de servicios que escribió el manual. Su diagnóstico fue que la base de datos estaba dañada porque había 2 bases de datos en paralelo, apuntando a "folder_backup" como la segunda base de datos. Según tengo entendido, los archivos dentro de "D: / folder_backup" habrían sido inertes, salvo el caso excepcional de que un programa busque carpetas que comiencen con "carpeta" o que lean todo el contenido del archivo "D: /".
¿De qué maneras no oscuras se puede acceder a un archivo renombrado por un sistema, que de otra manera hubiera sido imposible si se hubiera eliminado el archivo?
fuente
Respuestas:
Hay muchas opciones para elegir realmente.
Seguimiento de enlaces distribuidos.
Enlaces duros.
OpenFileById.
Números de registro MFT.
... y probablemente más. Si es razonable que una aplicación haga alguna de estas cosas es una pregunta diferente, pero ciertamente es posible .
fuente
Otro archivo puede acceder a un archivo renombrado.
Una forma en que otro programa puede acceder a un archivo renombrado es mediante una variable de entorno que el mismo programa que renombró el archivo establece en la nueva ruta del archivo. El programa que desea acceder a dicho archivo utiliza la variable de entorno para la ruta del archivo en lugar de una ruta de archivo fija establecida internamente.
Otra forma es que el archivo sea el único archivo en una carpeta específica. El programa que quiere usar este archivo sabe que nunca debe haber más de un archivo en esa carpeta específica, pero sabe que el nombre del archivo puede cambiar pero el directorio al que pertenece permanecerá igual. El programa simplemente usa el primer archivo que puede encontrar en esa carpeta, que siempre debe ser ese archivo. Sin embargo, esto no es una buena práctica y es mejor que tenga una variable de entorno.
De lo contrario, algunos programas pedirán automáticamente al usuario que ubique el archivo antes de continuar ejecutando su código.
fuente