У нас здесь интересное обсуждение удаления файлов на устройствах iOS. Вопрос был: если я удаляю файл с помощью NSFileManager, что происходит под капотом?
Насколько я понимаю, удаление выполняется путем удаления соответствующей записи файла из таблицы файловой системы.
Счетчик аргументов в том, что дескриптор файла остается каким-то образом, и устанавливается только флаг, который помечает файл как удаленный. Если пользователь имеет root-доступ к устройству iOS, он может сбросить этот флаг и восстановить содержимое файла.
В обоих случаях мы согласны с тем, что фактическое содержимое файла не будет перезаписано, а простые флэш-памяти все еще существуют на флэш-памяти / диске, пока блок не будет занят другим файлом.
Идея заключается в следующем: если вторая версия верна, мы могли бы перезаписать файл однобайтовым содержимым перед удалением (даже если этот байт записывается в новое место на флэш-накопителе без фактической перезаписи старого содержимого). Если затем файл восстановлен, доступен только перезаписанный однобайтовый контент.
Обратите внимание, что мы не говорим о судебном анализе флэш-накопителя, который может восстановить исходное содержимое файла.
Итак, резюмируем:
- Как удаление файла на iOS работает внутри?
- Подход перезаписи предотвращает удаление?