我试图找到一种使用Objective-C(或Swift)擦除磁盘上文件的方法。
Apple是否提供"内置"覆盖当前磁盘位置文件的解决方案?或者Mac OS X是否始终将文件写入其原始位置?
搜索Web(和StackOverflow)只显示某人想要删除的线程"删除"一份文件。我可以尝试将垃圾写入我想要擦除的文件中,但如果OS X将新内容写入磁盘上的其他位置,则无法帮助我。
我尝试使用Spotlight搜索提供的元数据检索位置,但这些结果不包含文件位置。
我有点坚持这一点,任何线索都将受到赞赏。
修改 我确实看过有关文件访问的Apple文档。它说
在写入文件后关闭文件时,系统会将零写入代码未触及的文件的任何部分。
和
截断文件以匹配您编写的数据的长度。对于您计划删除的临时文件,将文件截断为零长度。
如果我说得对,那就意味着文件应该被删除"当我打开它时,将长度截断为零并保存。然后文件系统应该用零覆盖内容。
来源(第34条;零填充延迟以成本提供安全性"在底部):https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/PerformanceTips/PerformanceTips.html#//apple_ref/doc/uid/TP40010672-CH7-SW1
答案 0 :(得分:0)
如果要打开现有文件并覆盖数据,请使用NSFileHandle *
它会做你需要的一切。
+ (id)fileHandleForUpdatingAtPath:(NSString *)path
将打开文件,并寻求开头。除非你寻求到最后,然后再打电话
[myHandle write: data]
将覆盖该文件的内容。