簡體   English   中英

無法從文檔目錄讀取保存的文件

[英]Can't read saved file from documents directory

我正在嘗試保存下載的文件,以便可以在另一個會話中打開它。 我將mp3數據保存到documents目錄,並將url保存到本地數據存儲中的文件。 當我檢查使用

        if ([[NSFileManager defaultManager] fileExistsAtPath:musicObject[@"localFile"]]){
        NSLog(@"applicationDocumentsDir exists");
        }
    else {
        NSLog(@"File doesn't exist");
    }

它返回“文件不存在”,但是我知道它是因為我已經打印出文件目錄,這給了我

“ file:/// private /var/mobile/Containers/Data/Application/94552DFC-022B-4962-9CB7-CCD87CB43E57/Documents/xDDsCbXAFhwEqGIzJfJRByEr1.mp3”,

我正在嘗試使用相同的路徑訪問它,但第一個是private 如何使文件不私有(我之前已在應用程序中保存了文件)

文件:/// var /mobile/Containers/Data/Application/AE27BD8F-5EEB-48FC-A8D4-E228F99CECE3/Documents/xDDsCbXAFhwEqGIzJfJRByEr1.mp3

我建議采取以下步驟:

  1. 取得最后一個路徑部分(就是您的mp3文件名)
  2. 獲取當前的Documents目錄
  3. 使用當前Documents目錄和提取的mp3文件名構建新路徑

如果我沒記錯的話, /var/private/var的符號鏈接。 因此,根據路徑的構建方式,一個可能會最終成為另一個。

我繼承了一個項目,該項目也遇到了同樣的問題,但之間只有一個額外的隨機命名目錄。 最終,我刪除了前導的/private組件,構造了一個路徑組件數組,並檢查了是否用當前值替換不存在的元素會導致現有文件。 您的情況應該更容易處理。

我不記得是什么時候,但是在某些時候,幾乎每次在模擬器中運行時,應用程序目錄(十六進制數字路徑組件)都開始發生變化。 從這種行為開始,這類問題就變得更加明顯。 盡管不應該保留完整的路徑,但我懷疑過去很多項目都不在乎。 一方面是因為事情剛剛開始,另一方面是因為很多人都不知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM