ファイル操作はNSFaileManager

取得方法
[NSFileManager defaultManager]

ホームディレクトリの取得方法

NSHomeDirectory() 

iOSのディレクトリ構成

ホーム/Documents/

アプリで作ったファイルの保存場所。
UIFileSharingEnabled = YES でiTune経由でPC同期可能

ホーム/Library/Preferences/

設定情報等の保存場所。
iTunesでバックアップされる。

ホーム/Library/Caches/

キャッシュ、操作履歴等を保存する場所。
iTuneでバックアップされない。

ホーム/tmp

一時的情報の保存、アプリが動作していない時に消される可能性あり。

pathの作り方

NSSearchPathForDirectoriesInDomainsを使う。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *pathString = [path objectAtIndex:0];

引数の説明。
NSDocumentDirectory ファイル保存ディレクトリ
NSUserDomainMask ホームディレクトリ以下の
YES ~展開するか

もしくは簡単に

NSString *path = [[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"txt"];

ファイルを保存/読み込み

テキストの読み込み/保存

読み込み
NSError *error = nil;
NSString *hoge = [NSString stringWithContentsOfFile:pathString 
   encoding:NSUTF8StringEncoding error:&error];
書き込み
NSError *error = nil;
[hogeString writeToFile:pathString atomically:YES encoding:NSUTF8StringEncoding error:&error];
atomicallyは予備ファイルを作るか。



ディレクトリの中身を調べたい

NSError *error;
[[NSFileManager defaultManager] contentsOfDirectoryAtPath:[fileOrDirURL path] error:&error];
directoryContentsAtPath:は10.5までしか使えない模様。
ファイル名の文字列が返ってくる。サブディレクトリの中身まで調べたければ- (NSArray *)subpathsAtPath:(NSString *)path;を用いる事。
また、まとめて- (NSDirectoryEnumerator *)enumeratorAtPath:(NSString *)path;で取得する方法もある。



最終更新:2012年09月05日 11:01