首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iOS上执行期间正在删除临时文件

在iOS上执行期间正在删除临时文件
EN

Stack Overflow用户
提问于 2020-07-07 00:14:34
回答 1查看 530关注 0票数 3

令人惊讶的是,经过一段时间的调试之后,我发现我的应用程序在1分钟左右就从tmp目录中清除文件,而没有任何其他用户操作,即使应用程序在前台运行。

因此,对于docs,临时目录应该在应用程序执行期间保存这些文件,并且只在启动后或最多在启动时删除它。

作为解决办法,我不想移动/复制到缓存目录,更让我惊讶的是为什么会发生这种情况。如果这有帮助的话,我会从Files应用程序中挑选(使用UIDocumentPickerViewController)。

为了使它更好,有时有一些文件在那里保存了很长时间,即使它们比其他文件更老,在选择之后它们会立即被删除。这可能导致访问错误,因为你的用户选择了一个文件,在应用程序还在运行的时候去喝杯咖啡,然后按下按钮将它上传到某个地方或者其他地方,然后文件就消失了。

我每次都可以用一个简单的应用程序复制它。

EN

回答 1

Stack Overflow用户

发布于 2022-02-12 19:42:25

在处理了一些临时文件之后,我不认为这是一个bug,它是临时文件在一段时间内不打开时将被删除的特性。我相信,通过区分正常文件和临时文件,您可以更直接地管理这些文件。根据一篇更详细的文章这里,您可以使用ManagedURL协议来解决问题:

代码语言:javascript
运行
复制
public protocol ManagedURL {
    var contentURL: URL { get }
    func keepAlive()
}

public extension ManagedURL {
    public func keepAlive() { }
}

extension URL: ManagedURL {
    public var contentURL: URL { return self }
}

要使后台操作保持活力,请执行以下操作:

代码语言:javascript
运行
复制
URLSession.shared.uploadTask(with: request, fromFile: fileToUpload.contentURL) { _, _, _ in
    temporaryFile.keepAlive()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62766286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档