如何清理nsurlsession downloadTask生成tmp文件?

时间:2016-04-20 08:56:32

标签: ios nsurlsession

如果我通过nsurlsession创建一个DownloadTask,则/ Developer / tmp /文件夹中有一个名为'CFNetworkDownload_1vY41L.tmp'的tmp文件。

那么当我删除downloadTask时如何删除tmp文件?

此外,我不想删除所有tmp文件,因为还有其他的downloadTask缓存文件。

2 个答案:

答案 0 :(得分:0)

您可以使用NSFileManager

removeItemAtPath:error:方法删除文件
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将具有文件的位置。