2009-07-28 9 views
5

iPhoneアプリのキャッシュフォルダに、サーバーからダウンロードした画像を書き込もうとしています。私の計画は、 "site.com/path/to/image.jpg"に画像を保存することです。そのようなサーバフォルダ構造をミラーリングすることは重複した名前を不可能にするので、それは正しい方法です。残念ながら、ファイルを作成する前に自分でフォルダを作成しなければならないようです。 "/ Users/Me/a/b/c"(これは有効なiPhoneパスではない)を指定した場合、Objective-Cに/ Users/Meが存在し、 aを作成し、次にbを作成し、それが終わりに達するまで続けます。Objective-Cに、文字列からディレクトリを再帰的に作成する方法がありますか?

私は自分で書き込むことができましたが、できるだけ組み込み関数を使用するのが好きです。私はここでこれについて何も見つけることができませんでした。

答えて

12

これを試してみてください!

NSString * path = @"/Users/Me/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z"; 
NSError * error = nil; 
BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath:path 
             withIntermediateDirectories:YES 
                  attributes:nil 
                   error:&error]; 
if (!success || error) { 
    NSLog(@"Error! %@", error); 
} else { 
    NSLog(@"Success!"); 
} 
+0

あなたは一般的に成功||エラーをしますか?それは必要ですか? – zekel

+0

@ zekel最近、 '!success'が作成するための適切なチェックであることが私の注目を集めています。 –

+0

それは私が思ったことです。メソッドが成功すると、 'error'はゼロになることは保証されません。 – zekel

関連する問題