重复文件在您的 iPad 上占用多少空间?理论上,它们不使用额外的存储空间。由于 iOS 和 macOS 上使用的 Apple 文件系统 (APFS) 的设计,复制文件实际上并不会创建副本。它只是创建一个指向磁盘上原始文件的引用。
但是 File Providers、iCloud 以及所有这些东西呢?我决定深入研究一下,看看你是否真的可以不受惩罚地复制一个文件的无数个副本。至少可以说,结果令人困惑。
重复是免费的
APFS 具有称为 APFS 克隆的功能。我找到的最清晰的解释来自 Mike Bombich,他是 Mac 备份应用 Carbon Copy Cloner 的开发者。我将其粘贴在这里供您阅读:
APFS 克隆允许用户立即在同一卷上创建文件副本,而无需占用额外的存储空间。克隆文件时,文件系统不会创建数据副本,而是创建对文件的第二个引用,该引用可以独立于第一个文件进行修改。
这两个文件将共享磁盘上保持相同的部分文件的存储,但对任一文件的更改将写入磁盘的不同部分。APFS 文件克隆仅在您在同一卷上制作文件副本时有效(例如,在 Finder 中复制文件或文件夹)。
这是关于 Mac 上的 APFS 的文章,但也适用于 iOS。例如,如果您为一个 1GB 的文件制作 10 个副本,那么它仍然只占用 1GB。其他“副本”只是对该原始文件的引用。但是,如果您修改其中一个引用,它将变成一个实际的重复文件。到目前为止,非常简单。
文件提供者的工作方式是否相同?
但是,如果您的应用程序使用 File Providers 怎么办?这些算作单独的卷吗?这是否意味着 iOS 在将文件移入和移出这些位置时将制作真实副本?
首先,什么是文件提供程序?查看“文件”应用程序。左侧是显示位置的列:
这些是文件提供者。有些提供对云存储的访问(如 Dropbox),但有些是本地的。Kymatica 的 AudioShare 和 Readdle 的 Documents 等第三方应用程序使用 File Provider 向需要它的任何其他应用程序开放其应用程序内存储。所以,我的问题是,File Provers 算作单独的存储卷,还是算作主卷的一部分?
没有好的数据
在 iOS 上对此进行调查的问题在于,很难获得实际使用的存储量的可靠数字。我决定从三个来源获取数据:连接的 Mac 上的 iTunes 和 iMazing,以及 iPad 本身的存储报告。我记下了这些数字,然后我制作了同一个 1.54GB 文件的七份副本。该文件(鼓机样本的下载)位于 Readdle 的文档应用程序中,我使用文件应用程序将其移至 AudioShare 的存储区域。
以下是三个来源在复制操作之前报告存储的方式。所有大小均以 GB 为单位,括号中的数字是我计算的,使用 512GB 作为总驱动器大小:
- iTunes:(173.06 使用)338.94 免费
- iPad:148.3 使用(363.7 免费)
- iMazing:已用 241.48,免费 270GB
不是一个好的开始。这些数字彼此相去甚远。尽管如此,也许他们会在测试前/测试后就存储空间的差异达成一致。
之前和之后
我将同一个文件复制了七次,从 Documents 的文件提供程序到 AudioShare 文件提供程序。副本花了一些时间。这么短的时间,复制近10GB的数据似乎是不可能的。仅根据这些信息,我猜测这些副本实际上是 APFS 克隆。但是数字说明了什么?
- iTunes:(使用 173.14),免费 338.86
- iPad:使用 159.1,(免费 352.9)
- iMazing:使用 252.3,免费 259.7
因此,已用空间的差异如下:
- iTunes:0.08 GB
- iPad:10.8 GB
- iMazing:10.82 GB
开始了!这是更有用的信息。该 1.54 GB 文件的七个副本总计 10.78 GB。iPad 的本机存储工具和 iMazing 都会报告这一额外使用空间量。但是 iTunes 表示没有使用额外的存储空间。这很奇怪。也许我们可以找到更多信息?
应用存储
在这里我们可以看到 Documents 和 AudioShare 的存储测量。正如您所期望的那样,文档保持不变——我们正在从中复制。AudioShare 显示增加了 10.78GB。这就是那七个复制文件的确切大小。这是怎么回事?
好吧,iTunes 有可能是错的,也可能是对的。如果它是正确的,那么 iPad 的报告是错误的。没有更多信息,对此没有更多要说的。但是再来一次测试怎么样?让我们将一个文件复制到 iPad 自己的On My iPad文件夹中,然后将该文件多次复制到另一个文件夹中。我们将在此测试中完全忽略文件提供程序,然后比较两个测试的结果。
测试 2:普通的旧文件副本
我删除了我们在第一次测试中制作的副本,清空了 iPad 的垃圾箱,清空了 AudioShare 自己的垃圾箱,并将测试文件移动到 iPad 的下载文件夹中。(有趣的是,我从 AudioShare 的文件提供程序中删除的文件并没有出现在文件应用程序自己的最近删除部分,也就是 iPad 的垃圾箱中)。
然后我与 iTunes 同步,并在 iMazing 上点击重新加载。运行测试的方法与之前的测试完全相同,只是我先将文件复制到 On My iPad 部分的另一个文件夹中,然后使用 Duplicate 命令一共创建了七个副本。
这次我就不给大家实测了,只给出结论,即使用存储前后的差异:
- iTunes:0.74 GB
- iPad:10.8 GB
- iMazing:10.79 GB
简而言之,这些与第一组结果几乎相同。File Provider 孤岛之间的副本与 iPad 的“本机”存储区域中的文件副本产生相同的结果。
APFS 很神奇
Apple 自己的 APFS 规范称在同一卷上复制的文件是克隆,而不是副本。在我们的两次测试中,结果都是一样的:iTunes 报告使用的存储空间没有增加,而 iPad 和 iMazing 一致认为这些文件确实占用了更多空间。
在这种情况下,一个结论是 iTunes 是正确的,因为它符合 Apple 自己的 APFS 描述。如果是这种情况,那么将文件移入和移出 File Providers 与在同一文件夹中移动它们是一样的。
如果你知道更多关于它是如何工作的,请在评论中或通过 Twitter/微博/电子邮件告诉我。
免责声明
部分内容(图片、文章)翻译/转载自国内外资讯/自媒体平台。文中内容不代表本站立场,如有侵权或其它,请联系 macmao.com@gmail.com,我们会第一时间配合删除。(转载请注明来源自:www.macmao.com)