快速复制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)
}
我在想,对于以下问题是否有不同的更快的解决方案。我正在下载 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)
}