我的应用程序占用了 iPad 存储上的幻影空间



所以,我正在为iPad开发一个涉及绘画的应用程序。 它将文件存储在两个地方:用户文档:

FileManager.default.url( for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true )

和应用程序支持文件夹:

FileManager.default.url( for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true )

现在发生的事情是,iOS告诉我我的应用程序占用了18GB的磁盘空间,即使我清除了所有文档目录(使用查找器,因为这个是可见的(和支持文件夹:

if  let suppPath = try? FileManager.default.url( for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true ),
let URLs = try? FileManager.default.contentsOfDirectory( atPath: suppPath.path )
{
for url in URLs
{
let completePath = suppPath.appendingPathComponent( url )
try? FileManager.default.removeItem( at: completePath )
}
}

在此之后,我什至不知道如何检查此文件夹的内容,但是我运行了这个:

func ScanDir( url: URL, depth: Int )
{
var string = ""
for _ in 0 ..< depth
{
string += "----"
}
string += "(url.lastPathComponent)"
debugPrint( string )
if let URLs = try? FileManager.default.contentsOfDirectory( atPath: url.path )
{
for urlstring in URLs
{
ScanDir( url: url.appendingPathComponent( urlstring ), depth: depth+1 )
}
}
}

然后扫描结果为

"Application Support"

以前,我可以看到我的所有项目、导出的文件、画笔等...... 所以它似乎奏效了。 但是,该应用程序仍然高达18GB。

然后我可以卸载它,但是一旦我重建应用程序,它就会回来。 我现在很困惑...

好吧,事实证明,iOS会自动将从.documentDirectory中删除的任何内容放在同一文件夹中的隐藏垃圾箱中。

所以我存储在.documentDirectory上然后删除的所有图像都放在一个.trash文件夹中,我不知道如何在iPad上看到,它只是不会让我知道发生了什么。我想我对iStuff还不是很熟悉。

所以我不得不在这个文件夹上运行我的清理序列以摆脱它..

最新更新