文件目录路径变化时重新申请

我从网址下载视频文件,并将其与该路径保存在文件目录:文件目录路径变化时重新申请

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

回到顶部