如果我通过nsurlsession创建一个DownloadTask,则/ Developer / tmp /文件夹中有一个名为'CFNetworkDownload_1vY41L.tmp'
的tmp文件。
那么当我删除downloadTask时如何删除tmp文件?
此外,我不想删除所有tmp文件,因为还有其他的downloadTask缓存文件。
答案 0 :(得分:0)
您可以使用NSFileManager
if ([[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), @"Your File Name"] error:NULL])
{
NSLog(@"File deleted !!!");
}
else
{
NSLog(@"Couldn't delete the file !!!");
}
答案 1 :(得分:0)
Apple's documentation说一旦下载块完成,文件将被删除,请查看位置说明。是的,它已被删除,至少在iOS 12中,您必须在完成之前将其移动,而无需释放空间。
示例:
let task = self.session.downloadTask(with: request) { [weak self] url, response, error in
if let error = error {
...
}
guard let httpResponse = response as? HTTPURLResponse else {
fatalError("Couldn't get HTTP response")
}
if 200..<300 ~= httpResponse.statusCode, let downloadedPath = url {
// Move file in downloadedPath to a documents or other location
}
}
downloadPath将具有文件的位置。