Tenemos una interesante discusión acerca de la eliminación de archivos en los dispositivos iOS. La pregunta era: ¿si borro un archivo con NSFileManager, lo que está sucediendo bajo el capó?
Mi entendimiento es que la eliminación se realiza mediante la eliminación de la correspondiente entrada del archivo desde el sistema de archivos de la tabla.
El argumento en contra es que un identificador de archivo permanece de alguna manera, y sólo una bandera se establece que marca el archivo como eliminado. Si el usuario tuviera acceso root en el dispositivo iOS, que potencialmente podría restablecer la bandera y recuperar el contenido del archivo.
En ambos casos estamos de acuerdo en que el real contenido de los archivos no se sobrescriben y la llanura bytes todavía existen en la memoria flash/disco hasta que el bloque está ocupado por otro archivo.
Ahora la idea es: si la segunda versión es verdadera, podemos sobrescribir el archivo con un byte de contenido antes de su eliminación (incluso si ese byte se escribe a una nueva ubicación en la unidad flash sin sobrescribir el contenido antiguo). Si, a continuación, se recupera el archivo, sólo el sobrescrito de un byte contenido está disponible.
Tenga en cuenta que no estamos hablando de análisis forense de la unidad flash que tal vez podría recuperar el contenido del archivo original.
Así que para recapitular:
- ¿Cómo eliminación de un archivo en iOS trabajar internamente?
- No sobrescribir el enfoque de prevenir undeletion?