iOS--Document路徑下儲存資料的總結
獲取Document的路徑的方法有幾個,下面我來說一下我的做法?
// fileName就是儲存檔案的檔名
NSUserDefaults*userdefault = [NSUserDefaults standardUserDefaults];
//找到Documents檔案所在的路徑
NSArray*path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*filePath = [pathobjectAtIndex:0];
這個filePath就能獲取到Document的資料夾下了,之後再根據自己的需求,拼接不同的檔案路徑。
接下來便是關於儲存資料,不管是NSArray,NSDirectory,NSData,或者其他資料。
這些資料型別都是能夠儲存,儲存介面是[class writeToFile:(檔案路徑) atomically:YES];
獲取檔案也很簡單,NSArray---->arrayWithContentsOfFile
NSData---->dataWithContentsOfFile;NSDirectory---->directoryWithContentsOfFile
**********
以上都是耳熟能詳的,上網或者基本上書籍中都會提到的。
下面我來說一下我遇到的問題,我的專案需求是在拍照時,隨時上傳圖片,如果上傳圖片過程中出現網路中斷、不穩定、或者網速不給力,這樣導致上傳圖片失敗的,要求把失敗的圖片儲存本地,在網路穩定重新啟動應用時,遍歷路徑下的檔案,再次上傳圖片!!
原先以為比較簡單,上面的nsdata類的儲存獲取介面一調就完事,但是現實啪啪打臉。出現儲存檔案成功,我把多個檔案路徑放在NSArray中存入本地Document中。但是在應用重新啟動拿到檔案路徑,要獲取圖片資料時,NSFileManager檢測路徑下檔案根本不存在!
多次測試發現問題所在,那就是上述能獲取到Document資料夾的filePath每次都是在變化的,而我在儲存的路徑當時的完整路徑,如下?
/var/mobile/Containers/Data/Application/2BE22D43-4A6C-42EE-892F-107E508E6540/Documents/20170705145022007.jpg
其中2BE22D43-4A6C-42EE-892F-107E508E6540這段序列每次都在變化
遇到這樣儲存本地資料的問題,只把檔名也就是20170705145022007.jpg儲存在NSArray中,獲取資料時重新呼叫Document路徑拼接,這樣便能成功拿到資料!
相關文章
- Sqlserver資料庫儲存路徑的修改SQLServer資料庫
- 樹形結構資料儲存方案(二): 物化路徑
- 微信資料夾儲存在什麼位置?如何修改儲存路徑
- CentOS修改Mariadb資料庫檔案儲存路徑CentOS資料庫
- 規模化執行容器時的最佳資料儲存路徑
- 【Web總結】資源儲存Web
- 資料庫儲存選型經驗總結資料庫
- mysql資料庫安裝及預設儲存路徑修改方法MySql資料庫
- dede路徑總結
- mariadb-2-在centos中修改mariadb資料的儲存路徑CentOS
- MySQL修改預設儲存路徑MySql
- HBase 資料儲存結構
- Oracle資料儲存結構Oracle
- MySQL InnoDB的儲存結構總結MySql
- 資料獲取,解析,儲存等知識的學習總結
- 檔案路徑總結
- 雲伺服器寶塔修改將預設資料儲存路徑到資料盤伺服器
- oracle 修改表空間儲存路徑Oracle
- Dart SDK在Flutter SDK中的儲存路徑DartFlutter
- 管理資料庫儲存結構資料庫
- 大資料挑戰下的儲存之路大資料
- Cassandra的內部資料儲存結構
- 儲存多路徑故障導致資料庫死掉案例資料庫
- Android技能樹 — Android儲存路徑及IO操作小結Android
- 【資料結構——圖和圖的儲存結構】資料結構
- VSAN儲存結構解析+儲存資料恢復案例資料恢復
- 快速理解Android檔案儲存路徑Android
- win10中怎麼改變桌面資料夾儲存位置_win10移動更改桌面資料夾儲存路徑教程Win10
- 怎麼看jupyter的檔案儲存路徑
- 怎麼設定spyder檔案的儲存路徑?
- oracle歸檔日誌儲存路徑的設定Oracle
- 詳解資料庫儲存的資料結構LSM Tree資料庫資料結構
- 層次結構資料的資料庫儲存和使用資料庫
- MyRocks儲存引擎資料結構解析儲存引擎資料結構
- 華為儲存多路徑
- 儲存-配置多路徑
- 【PHP資料結構】圖的概念和儲存結構PHP資料結構
- 資料儲存--檔案儲存