【发布时间】:2014-06-30 07:40:02
【问题描述】:
我正在尝试寻找一种方法来使用 Objective-C(或 Swift)擦除磁盘上的文件。
Apple 是否提供“内置”解决方案来覆盖当前磁盘位置的文件?还是 Mac OS X 总是将文件写入其原始位置?
搜索网络(和 StackOverflow)只显示有人想要“删除”文件的线程。我可以尝试将垃圾写入我想擦除的文件中,但如果 OS X 将新内容写入磁盘上的不同位置,这对我没有帮助。
我尝试使用 Spotlight 搜索提供的元数据检索位置,但这些结果不包含文件位置。
我有点坚持,任何线索将不胜感激。
编辑 我确实查看了有关文件访问的 Apple 文档。它说
当您在写入文件后关闭文件时,系统会将零写入您的代码未触及的文件的任何部分。
和
截断文件以匹配您写入的数据的长度。对于您打算删除的暂存文件,请将文件截断为零长度。
如果我做对了,这意味着当我打开文件时应该“删除”文件,将长度截断为零并保存。然后文件系统应该用零覆盖内容。
来源(底部的“零填充延迟提供安全性”部分):https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/PerformanceTips/PerformanceTips.html#//apple_ref/doc/uid/TP40010672-CH7-SW1
【问题讨论】:
-
您想以不可恢复的方式删除文件?
-
如果您知道文件的路径 URL。使用 FileManager 方法之一擦除文件。 NSFileManager
-
@BryanChen 是的,我希望它们不可恢复(如果可能的话)。
标签: objective-c cocoa swift