2017-05-26 43 views
3

語境:Xcode中8.3.2 /斯威夫特3Documents文件夾中的內容 - 文件無法打開,因爲沒有這樣的文件

我下載了一堆的MP3在Documents文件夾的子文件夾。 然後,我通過驗證的成功:

  • try FileManager.default.contentsOfDirectory(atPath: folderPath) 我可以看到我的文件中使用Xcode的上市
  • ,我做的窗口 - 設備 - mydevice在 - 對myApp - downloadContainer。我在電腦的桌面上找到了沙箱的副本。我導航到文檔文件夾中的相關子文件夾,果然,我的MP3有
  • 最後但並非最不重要的...在我的移動應用程序中,我只需選擇一個下載的MP3並點擊播放。它播放。

然後,我重新啓動應用程序。由於上述原因,沒有保存的歌曲將再次播放:無法打開文件「name_here」,因爲沒有此文件。 FileManager.default.contentsOfDirectory()仍然在那裏列出它們;當我檢查沙箱時,他們都在那裏。

我出來的想法。 想法,任何人?

PS:當我

try Data.init(contentsOf: URL(fileURLWithPath: file_path_here)) 

通常我不會真的需要加載的東西,在內存中出現錯誤; AVPlayer在磁盤上播放它們非常好;但是,我必須先解密它們,這就是爲什麼我要用任何文件的內容來填充「NSData」的原因。多說無用,沒有達到我的解密,因爲...... 文件無法打開,因爲沒有這樣的文件

爲什麼相同的代碼工作第一次(當我下載它們),但是在失敗後期會議?

+1

你如何在應用程序重新啓動後計算'file_path_here'?用這些細節更新你的問題。 – rmaddy

+0

查看構建好的和不好的情況下的URL,瞭解可能的差異。 –

回答

0

感謝提示,rmaddy。

我想這是週五晚上,我很累,我應該回家。

的愚蠢: 在節省時間,一些文件的路徑看起來像

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

這就是我在CoreData堅持爲好,完整的絕對路徑。

當應用程序重新啓動時,我正在尋找該確切路徑的文件。但是,應用程序標識改變,現在我的文檔文件夾看起來像

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

,在URL的構造函數(「對於relativeTo」參數)是有原因的,我猜:-)

相關問題