文件目录路径变化时重新申请
我从网址下载视频文件,并将其与该路径保存在文件目录:文件目录路径变化时重新申请
let destination: DownloadRequest.DownloadFileDestination = { _, _ in let pathComponent = "pack\(self.packID)-\(selectRow + 1).mp4"
let directoryURL: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let folderPath: URL = directoryURL.appendingPathComponent("Downloads", isDirectory: true)
let fileURL: URL = folderPath.appendingPathComponent(pathComponent)
return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}
我的视频被下载并成功播放。 但有一个问题,当我在Xcode中重建应用程序并尝试播放我下载的最后一个视频时,视频不显示,并且当我下载新视频时,此保存并成功播放。
我已经看过每个视频包的路径,它们是不同的。
1 - 文件:///用户/ myMac /库/开发商/ CoreSimulator /设备/ EAC2F4CE-EA09-46C0-B403-1CE9E24B6822 /数据/集装箱/数据/应用/ 1D2C1F7B-E627-4898-91C1 -D0AF8D5E0F1E/Documents/Downloads/pack7-1.mp4
2 - file:/// Users/myMac/Library/Developer/CoreSimulator/Devices/EAC2F4CE-EA09-46C0-B403-1CE9E24B6822/data/Containers/Data /应用/ F950E9A5-C9F3-4B8C-BCF5-647EEC233CEE /Documents/Downloads/pack7-3.mp4
现在,我的问题是,当我们更新从App Store应用程序,这意味着重新安装?这条道路是否改变?
如何解决这个问题?
回答:
iOS 8起,应用程序沙箱的绝对url会在您每次重新启动应用程序时发生变化。因此,您绝不应保存视频的绝对网址。保存视频的名称,并在每次重新启动应用时重新创建网址。
let pathComponent = "pack\(self.packID)-\(selectRow + 1).mp4" let directoryURL: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let folderPath: URL = directoryURL.appendingPathComponent("Downloads", isDirectory: true)
let fileURL: URL = folderPath.appendingPathComponent(pathComponent)
一旦你有fileURL
查找文件,你会发现在以前推出下载的文件。
iOS每次用户启动应用程序时都会为应用程序创建一个新的Sandbox。因此绝对URL会非常。但是iOS会照顾到早期设置Sandbox内的所有文件夹和内容。因此,尽管SandBox的基础网址发生变化,但所有内容的相对网址仍保持不变。
因此,它建议永远不要将绝对网址保存到任何文件夹:)希望它有帮助
以上是 文件目录路径变化时重新申请 的全部内容, 来源链接: utcz.com/qa/261584.html