文档文件夹内容 - 由于没有此类文件,因此无法打开该文件

时间:2017-05-26 15:30:27

标签: ios swift nsdata

上下文:Xcode 8.3.2 / Swift 3

我在Documents文件夹中的子文件夹中下载了一堆MP3。 然后,我通过以下方式验证成功:

  • try FileManager.default.contentsOfDirectory(atPath: folderPath)  我可以看到列出的文件
  • 使用Xcode,我正在做Window - Devices - myDevice - myApp - downloadContainer。我在计算机的桌面上获得了沙盒的副本。我导航到Documents文件夹中的相关子文件夹,果然,我的MP3就在那里
  • 最后但并非最不重要......在我的移动应用程序中,我只需选择一个已下载的MP3并点击播放。它会播放。

然后,我重新启动应用程序。由于上述原因,没有保存的歌曲会再次播放:文件" name_here"因为没有这样的文件而无法打开。 FileManager.default.contentsOfDirectory()仍然在那里列出它们;当我检查沙箱时,他们就在那里。

我没有想法。 想法,任何人?

PS:当我

时发生错误
try Data.init(contentsOf: URL(fileURLWithPath: file_path_here))

通常我不需要在内存中加载东西; AVPlayer可以从磁盘上播放它们;但是,我必须首先解密它们,这就是为什么我要填充一个" NSData"与任何文件的内容。没用说,没有任何东西可以到达我的解密器,因为...... 由于没有这样的文件而无法打开文件

为什么第一次(当我下载它们时)相同的代码工作但在以后的会话中失败???

1 个答案:

答案 0 :(得分:0)

感谢提示,rmaddy。

我想这是星期五晚上,我累了,我应该回家。

愚蠢: 在保存时,某些文件的路径看起来像

"/var/mobile/Containers/Data/Application/961ED728-311E-4BDF-A599-F79CBE59A174/Documents/NameOfMyApp/some.mp3"

这也是我在CoreData中所持有的,完整的绝对路径。

当应用重新启动时,我正在寻找该路径的文件。但是,应用程序标识符已更改,我的Documents文件夹现在看起来像

"/var/mobile/Containers/Data/Application/D07BF1A5-8865-4920-B96E-541D4251B553/Documents"

URL()的构造函数中的“relativeTo”参数是有原因的,我想: - )