Cuando abre un archivo de texto en el Bloc de notas en Windows, puede mover el archivo de origen a la Papelera de reciclaje o incluso eliminarlo permanentemente. Lo mismo es cierto para WordPad. ¿Por qué Windows no le da una advertencia y se queja de que el archivo está abierto en otro programa?
Sin embargo, si el mismo archivo está abierto en Word e intenta mover el archivo fuente a la papelera de reciclaje o eliminarlo permanentemente, Windows le avisa. El mensaje en sí puede ser un tipo de mensaje de advertencia, que le indica que algún programa (a menudo desconocido) tiene el archivo abierto. En el caso de Word 2013 en Windows 8.1, este es un mensaje de información que le dice exactamente qué programa (Word) tiene abierto el archivo.
¿Porqué es eso? ¿Por qué puede A) eliminar el archivo fuente mientras está abierto en un programa, y B) continuar trabajando en el documento después de que el archivo se haya eliminado? ¿Por qué el comportamiento en Notepad y WordPad es diferente al de Word?
El comportamiento del primer caso también existe en Paint. Puede eliminar un archivo de mapa de bits mientras está abierto en Paint y continuar trabajando. Pero cuando intenta guardarlo, se le solicita la ubicación del archivo para guardarlo. Con el Bloc de notas, lo guarda directamente en la misma ubicación en la que se almacenó el archivo original y le da el mismo nombre. El Bloc de notas no te pide eso.
No he probado esto en Windows 7, Vista o XP. Sin embargo, esperaría que el comportamiento sea exactamente el mismo, por lo que la pregunta probablemente también se aplicaría a esos sistemas.
fuente
Respuestas:
No todos los programas bloquean archivos cuando se abren para editar
Windows tiene dos tipos de bloqueos de archivos, bloqueos compartidos y bloqueos exclusivos. Los bloqueos compartidos permiten que otros programas lean el archivo pero niegan el acceso de escritura a otros programas. Los bloqueos exclusivos evitan que otros programas accedan al archivo por completo. Un programa puede usar cualquier tipo de bloqueo según sea necesario.
Los programas pueden "abrir" archivos para editarlos pero no bloquearlos. Lo que realmente sucede aquí es que el archivo se carga en un búfer en la memoria y el estado del archivo no se verifica hasta que se vuelve a operar. Un archivo "abierto" de esta manera no está realmente en uso y puede ser manipulado libremente por otros programas o por el propio sistema, lo que le permite continuar editando el archivo inexistente y guardarlo en un nuevo archivo.
El Bloc de notas no bloquea el archivo abierto, lo que significa que el archivo se puede eliminar mientras está abierto en el Bloc de notas y el programa no notará que el archivo se elimina hasta que intente abrirlo nuevamente. Del mismo modo, Paint no bloquea el archivo y solo nota que el archivo se elimina cuando intenta abrirlo o guardarlo.
Word, por otro lado, bloquea los documentos cuando los abre ( editar: según mi investigación, parece que el bloqueo es exclusivo solo cuando Word lee o escribe en el archivo, y se comparte de otra manera ). Como resultado, no puede eliminar archivos que están actualmente abiertos en Word.
Abrir un archivo sin bloquearlo puede ser arriesgado
Aunque es simple cargar el archivo en la memoria y no tocarlo hasta que sea necesario, hacerlo sin bloquearlo conlleva el riesgo de una condición de carrera en la que un programa puede editar el archivo sin que los cambios se reflejen en otro problema. Ese otro programa (que bien podría ser Notepad o Paint) no verá los cambios, y se perderán cuando guarde el archivo en ese programa.
Este riesgo de condiciones de carrera es la razón por la cual Microsoft Word (y otros programas de Office) bloquean los archivos cuando los abren. Por otro lado, como ejemplo de una solución alternativa, Notepad ++ no bloquea los archivos abiertos para que otros programas puedan continuar manipulándolos. Sin embargo, advertirá al usuario si detecta que el archivo ha cambiado o se ha eliminado, y le preguntará si debe volver a cargar el archivo desde el disco o cerrarlo, respectivamente. Ambas acciones descartarían los cambios del usuario.
fuente
Es porque algunos programas hacen una copia del archivo y lo abren en lugar del original. De esa manera, puede eliminar el archivo original sin errores, ya que ningún programa lo está utilizando.
fuente