快速复制tmp文件

时间:2015-10-13 20:19:15

标签: ios swift download nsdata nsurlsession

我想知道,如果对以下问题有不同且更快的解决方案。我正在下载NSURLSession的文件。默认情况下(我猜?)下载的文件存储在tmp文件夹中。然后我需要将此文件复制到缓存文件夹。目前我正在使用此代码进行我的方法(在didFinishDownloading函数中)

if let fileData = NSData(contentsOfURL: sourceUrl) {
        fileData.writeToURL(destinationURL, atomically: true)   // true
        print(destinationURL.path!)
        }

但是,由于我的文件很大,这需要一段时间。 将此文件复制到缓存文件夹有不同的选项吗? 或者是否可以使用NSURLSession

将文件直接下载到缓存文件夹

1 个答案:

答案 0 :(得分:2)

而不是复制文件,你只需移动它就可以了 理想的位置:

do {
    try NSFileManager.defaultManager().moveItemAtURL(sourceURL, toURL: destinationURL)
} catch let err as NSError {
    print(err.localizedDescription)
}

这会快得多,因为只有目录条目 文件系统已修改,但实际上没有复制数据。

Swift 3更新:

do {
    try FileManager.default.moveItem(at: sourceURL, to: destinationURL)
} catch {
    print(error.localizedDescription)
}