En los sistemas Windows, ¿cambiar el nombre de los archivos es funcionalmente similar a eliminarlos?

9

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?

Tomás Zubiri
fuente
1
¿De hecho copió los archivos (tener dos copias en algún momento y luego eliminó el original) o simplemente los movió?
GSerg
1
¿El sistema se estaba ejecutando al momento de leer esas bases de datos? Es posible en Windows (también en Linux) copiar archivos mientras están abiertos (dependiendo de la aplicación que abre los archivos en ciertos "modos"). Esto probablemente resultaría en copias corruptas, por cierto.
davidbak
@davidbak Negativo, la aplicación se cerró al cambiar el nombre de los archivos.
Tomas Zubiri
@GSerg Creo que cambié el nombre de la carpeta y luego permití que la configuración de la aplicación la recreara.
Tomas Zubiri
Compare con los sistemas de archivos Unix, donde la ID de un archivo es un número entero, y un nombre de archivo es realmente solo una asignación de nombres a ID, y un archivo no se elimina hasta que no tiene nombres y ningún proceso lo tiene abierto. Cambiar el nombre de un archivo en Unix agrega una nueva asignación de nombre, luego elimina el nombre anterior, por lo que en ningún momento se elimina el archivo.
Raedwald

Respuestas:

-2

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.

J03L
fuente