快速复制tmp文件

Copy tmp file fast

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

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

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

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

无需复制文件,您只需移动文件到 所需位置:

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)
}