我有ViewController
个单元格。如果用户单击其中一个单元格,则会使用id(tableNumber)进入下一个TableController
。在TableController
用户可以下载文件。
问题:当第一个tableView(id1)中的用户下载文件在ViewController中返回并在下载之后进入第二个tableView(id2)文件保存在一个文件夹中:/Documents/id2
。但在这种情况下我需要保存这样的文件:第一个文件/Documents/id1
第二个文件/Documents/id2
。怎么做?
TableController
中的代码,用于在DownloadManager
中传递ID:
DownloadManager.shared.id = self.id
DownloadManager
中用于保存文件的代码:
var id = ""
func urlSession(_ session: URLSession,
downloadTask: URLSessionDownloadTask,
didFinishDownloadingTo location: URL){
let fileName = downloadTask.originalRequest?.url?.lastPathComponent
let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let documentDirectoryPath:String = path[0]
let fileManager = FileManager()
var destinationURLForFile = URL(fileURLWithPath: documentDirectoryPath.appending("/\(id)"))
do {
try fileManager.createDirectory(at: destinationURLForFile, withIntermediateDirectories: true, attributes: nil)
destinationURLForFile.appendPathComponent(String(describing: fileName!))
try fileManager.moveItem(at: location, to: destinationURLForFile)
}catch(let error){
print(error)
}
}
答案 0 :(得分:0)
对于每次下载,请创建DownloadManager实例并下载视频。
您可以创建一个变量来保存DownloadManager中的文件夹路径,行/表ID。
由于您为每次下载创建了DownloadManager的新实例,因此可以为每个视图控制器和行/表ID定义不同的文件夹路径。
下载文件后,使用上述变量将文件保存在文件夹中。
不要使用DownloadManager.shared.
使用DownloadManager()
希望这会有所帮助:)