#author("2016-06-23T04:48:59+00:00","default:nitta","nitta")
[[iOS]]

*iOS におけるデータファイルの格納について [#b4cc4d81]

**ファイルの置き場所について (/Documents, /tmp, /Library/Cache) [#oa8078af]

iOS Storage Guideline
https://developer.apple.com/icloud/documentation/data-storage/index.html

- ユーザが残したいファイルは /Documents に置く。永続的に存在し続け、iCloud にもバックアップされる。
- 一時的なファイルは /tmp におく。自分で消さない限り永続的に存在し続けるが、iCloudにはバックアップされない。
- 自動的に消されてもよいデータは /Library/Caches におく。勝手に消されることがあるし、iCloudにはバックアップされない。

**ファイル操作 NSFileManager [#wf98842e]

 let manager = NSFileManager

 manager.copyItemAtPath(srcPath, toPath: toPath, error: nil)  // コピーする
 manager.moveItemAtPath(srcPath, toPath: toPath, error: nil)  // 移動する
 manager.removeItemAtPath(filePath, error: nil)               // 削除する
 let flag:Bool = manager.fileExisitsAtPath(path)              // ファイルの存在をチェックする

**アプリケーション固有ストレージにあるファイルの削除 [#of527c90]
 let fileName: String = ...
 
 let homePath: String = NSHomeDirector()
 let docPath: String = homePath.stringByAppendingPathComponent("Documents")
 let filePath: String = docPath + "/" + fileName;
 let manager: NSFileManager = NSFileManager.defaultManager()
 do {
   try manager.removeItemAtPath(filePath)
 } catch _ {
   /* エラー処理 */
 }

** 指定したディレクトリ下の全てのファイルにを操作する [#ta49b3ab]

 var files: [String] = []
 let homePath: String = NSHomeDirector()
 let docPath: String = homePath.stringByAppendingPathCOmponent("Documents")
 let manager: NSFileManager = NSFileManager.defaultManager()
 let paths = manager.contentsOfDirectoryAtPath(docPath, error:nil)
 for path in paths {
   var fileName = path as! String
   var filePath = docPath.stringByAppendingPathComponent(fileName)
   ...
   // filePath について操作する
   ...
 }

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS