iOS 是不是会清除文档目录中的磁盘使用量?

Posted

技术标签:

【中文标题】iOS 是不是会清除文档目录中的磁盘使用量?【英文标题】:Does iOS purge disk usage in the document directory?iOS 是否会清除文档目录中的磁盘使用量? 【发布时间】:2020-05-04 15:17:52 【问题描述】:

除了手机磁盘上实际可用的空间外,我找不到 ios 应用程序可以在其文档目录中消耗的磁盘空间量的限制。

    这是否意味着如果手机有可用的应用程序可以使用 100GB 的文档目录空间?

    如果另一个应用程序需要空间,但由于这个资源占用应用程序而没有可用空间,iOS 是否会清除滥用者的磁盘空间?

【问题讨论】:

【参考方案1】:

您可以在此处找到解释存储数据的各种选项的文档:

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

具体来说,请查看Table 1-1 Commonly used directories of an iOS app,它应该会回答您的所有问题。

    除了设备上可用的存储空间外,您可以在那里存储的数据量没有限制。

    但是,文档目录仅用于“用户生成的内容”。它将被备份到 iCloud,因此它仅适用于用户希望备份的文件。如果审核团队认为您正在使用它来存储应该在 temp 目录中的支持文件(系统会在空间不足时清除该目录),那么您的应用将无法通过审核。

    The iCloud File Storage Container 部分详细介绍了被视为用户数据的类型:

    “用户在应用程序的用户界面中创建和查看的文档——例如 Pages、Numbers 和 Keynote 中的文档浏览器应存储在 Documents 目录中。另一个可能进入 Documents 目录的文件示例已保存游戏,同样因为它们是应用程序可能提供某种选择方法的东西。

    应用不希望用户直接看到或修改的任何内容都应放在 Documents 目录之外。应用程序可以在容器目录中创建任何子目录,因此它们可以根据需要排列私有文件。”

    当空间不足时,系统不会清除 Documents 目录的内容。

【讨论】:

该链接是一个很好的资源。我们是否知道为 iOS 应用程序清除 tmp 文件夹的频率?我在 macOS 上读过,它可以是三天内未访问的任何文件。 据我所知,没有这方面的文档(它可能随时发生)。 tmp 文件夹用于存放不需要在应用程序启动之间保留的数据 - 如果您希望数据在用户下次启动应用程序时存在,则不要将其放在那里。如果您想存储在应用程序启动之间持续存在的数据,您可以使用Library 文件夹。我相信Library 文件夹中的任何内容都不会在存储空间不足的情况下被系统清理。请注意,它已备份到 iCloud,因此您可能希望在有意义的情况下从备份中排除文件。

以上是关于iOS 是不是会清除文档目录中的磁盘使用量?的主要内容,如果未能解决你的问题,请参考以下文章

FlinkFlink checkpoint 本地磁盘 没有清除

清除three20 & Restkit缓存信息以释放磁盘内存空间

Linux 磁盘分区详解

Windows系统安装改磁盘格式

多进程读写资料的效率为啥会远远不如一个进程直接io的效率

在 ios 应用程序中从磁盘加载大图像