We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
当我们启动一个任务之后,暂停、取消或暂停再取消该任务的时候,该框架会调用cancelByProducingResumeData来进行存储已经下载好的resumeData,并将其写入指定文件夹(文件以.download结尾),但是与于此同时AFNetworking中的NSURLSession也会随着cancelByProducingResumeData生成一个tmp文件(CFNetworkDownload_cWZiWj.tmp 大概是这命名,后来发现是下载中的文件)。
cancelByProducingResumeData
若我们在任务进行的时候,暂停再取消、直接取消该任务的时候,框架会删除掉.download文件,却不会删除.tmp文件,而且.tmp文件也是挺大的(根据下载任务的大小决定)
发现直接调用downloadTask的cancel方法可以移除.tmp文件,但是调用了cancelByProducingResumeData,再调用cancel是无效的。
cancel
The text was updated successfully, but these errors were encountered:
还是说这个可以不用考虑?
查到的资料显示 tmp文件夹系统会在你关闭app后自动清除,app更新后会被清除
虚拟机是没有这个效果啦,真机还没试过。。。
Sorry, something went wrong.
我认为程序没有必要主动删除tmp文件夹中的文件,正在下载中的文件是暂时保存在tmp文件夹下的,可以肯定的是系统会确保在App运行时不删除属于该App的tmp文件夹中的内容,当然关闭App后系统也不会自动清理,只有在需要清理(这个时机是由系统确定的)的时候这个文件夹中的内容才会被清理。
resumeData是一个字典序列化后的数据,这个字典中保存了下载相关的信息,其中也包括了对应的tmp文件的位置。resumeData有独立的版本(即NSURLSessionResumeInfoVersion),在版本1时,可以根据NSURLSessionResumeInfoLocalPath拿到 tmp 文件的完整路径,在后续几个版本中,只能通过NSURLSessionResumeInfoTempFileName拿到 tmp 文件的文件名,然后自行拼接得到完整的 tmp 文件路径,所以在目前的 iOS 版本上是可以做到 App 主动删除 tmp 文件的,但这个逻辑在后续的 iOS 版本上是否有效就无法得到保证了。
NSURLSessionResumeInfoVersion
NSURLSessionResumeInfoLocalPath
NSURLSessionResumeInfoTempFileName
👌
No branches or pull requests
当我们启动一个任务之后,暂停、取消或暂停再取消该任务的时候,该框架会调用
cancelByProducingResumeData
来进行存储已经下载好的resumeData,并将其写入指定文件夹(文件以.download结尾),但是与于此同时AFNetworking中的NSURLSession也会随着cancelByProducingResumeData
生成一个tmp文件(CFNetworkDownload_cWZiWj.tmp 大概是这命名,后来发现是下载中的文件)。若我们在任务进行的时候,暂停再取消、直接取消该任务的时候,框架会删除掉.download文件,却不会删除.tmp文件,而且.tmp文件也是挺大的(根据下载任务的大小决定)
发现直接调用downloadTask的
cancel
方法可以移除.tmp文件,但是调用了cancelByProducingResumeData
,再调用cancel
是无效的。The text was updated successfully, but these errors were encountered: