iOS如何从技术上删除文件,并且可能将其删除?


11

我们在这里进行了有关iOS设备上文件删除的有趣讨论。问题是:如果我使用NSFileManager删除文件,那么到底发生了什么?

我的理解是,删除是通过从文件系统表中删除相应的文件条目来执行的。

counter参数是文件句柄以某种方式保留,并且仅设置了将文件标记为已删除的标志。如果用户具有对iOS设备的超级用户访问权限,则他可能会重置该标志并恢复文件内容。

在这两种情况下,我们都同意不会覆盖实际的文件内容,并且闪存块/磁盘上的普通字节仍然存在,直到该块被另一个文件占用为止。

现在的想法是:如果第二个版本为true,我们可以在删除之前使用一个字节的内容覆盖文件(即使该字节被写入闪存驱动器上的新位置,而实际上不覆盖旧内容)。如果然后恢复该文件,则仅覆盖一个字节的内容可用。

请注意,我们并不是在对闪存驱动器进行取证分析,否则可能会恢复原始文件内容。

因此,回顾一下:

  • 如何在iOS上内部删除文件?
  • 覆盖方法是否可以防止删除?

Answers:


3

我相信在Unix中,文件系统已按照您的建议进行了修改(条目已从文件系统表中删除)。在Windows上,文件系统表被修改,并且文件仅被标记为已删除-数据恢复工具可以取消删除该文件。查看Windows取消删除应用程序后,我认为文件名也已修改,因此在取消删除时,您需要提供正确的文件名。修改文件名将意味着,如果您创建的文件名与刚删除的文件名相同,则操作系统无需调和两个相同名称的文件。

MacOSX和Windows有一个垃圾桶(回收站),我认为这是一个特殊的文件夹,将已删除的文件复制到其中。清空垃圾箱时,将通过修改系统文件表来清除此文件夹。如果您使用NSFileManager,它将规避垃圾桶(无论如何在iOS上都不存在),因此这是一个真正的删除操作。同样,如果您从终端窗口“ rm”。

如果您创建一个与旧文件同名的新文件,那么在Unix中,它只是系统文件表中的一个新条目,但是由于旧条目已从表中删除,因此创建新文件不会有任何好处。新条目。

那是我的信念,我已经准备好接受反对投票的冲击;-)


您绝对对OS X上的垃圾箱是正确的。它只是一个特殊的文件夹,仅此而已。当您使不可见文件可见时,您实际上可以在主目录下将其视为文件夹。
CanSürmeli2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.