私自身のディレクトリの場所
-
22-09-2019 - |
質問
私は自分のディレクトリツリーを作成して、自分のアプリケーションからアクセスする方法を理解しようとしています。
私は学習プログラムのいくつかの種類を行うと、このようなディレクトリ構造を作成したいのです。
-MyLessonsDirectory
--LessonDirectory_1
---Step_1
---Step_2
---Step_3
--LessonDirectory_2
---Step_1
---Step_2
---Step_3
.
.
and so on
は、それぞれ「ステップ」-directoryで、私はレッスンのステップのための具体的な内容を持っています。開発しながらコンテンツを私が追加されます。したがって、私はそれにアクセスするとディレクトリの内容を読んで、アプリケーション内から構造やコンテンツを作成する必要はありません。私はこのような構造を作成し、それを使用することができた場合、それは簡単に私のアプリに新しいレッスンを作成することができます素敵なデザインを作成することは非常に簡単になります。
私はXcodeでファイル構造でこれらのディレクトリを作成する必要がありますし、自分のアプリケーションからそれらのディレクトリへのパスが何である。ここで、私は何を把握することはできませんことです。
解決
iPhoneで、あなただけのアプリへのアクセス専用のディレクトリを持っています。ドキュメントでの練習ディレクトリを置くのに最適な場所は、appディレクトリ内のフォルダ。
この...
NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
...あなたはその後、NSFileManagerに引き渡すことができますディレクトリフォルダへのパスを提供します。
あなたは視覚的なディレクトリ構造を確認したい場合は、、
でのシミュレータと表情でアプリを実行します~/Library/Application Support/iPhone Simulator/User/Applications
アプリはちんぷんかんぷんUUID名前のフォルダのいずれかになります。あなたは、Finderであっディレクトリとファイルを見ることができます。
私はiPhoneがすでに実質的に必要になる場合がありますディレクトリのほとんどを持っていることを追加します。あなたは、すべての場所に設定、キャッシュ、TMP、ドキュメントなどがあります。
Edit01ます:
私は何をしたいコンテンツを追加することです 手動で私が開始する前に 応用。その後、内から アプリケーション私は、コンテンツIを読みます アプリケーションを起動する前に追加しました。
あなたは、デフォルトのディレクトリ構造を変更することはできませんし、アプリケーションまたはそのディレクトリがインストールされている方法を超える絶対的に制御することはできません。 iPhoneアプリは、あらゆる種類の外部のサポートファイルを持っていません。すべてのものは、アプリケーションバンドル内にあります。
あなたはその中のものを詰め込むと、デフォルトのディレクトリのいずれか、初めてのアプリの実行にそれらをコピーすることができるようにしかし、アプリケーションバンドルは本当にただのディレクトリです。あなたはドキュメントディレクトリに欲しいものを書くことができます。
他のヒント
あなたはディレクトリを作成するために、NSFileManagerを見てみたい:
NSFileManager *fm = [NSFileManager defaultManager];
NSError *error;
BOOL result = [fm createDirectoryAtPath:@"path....." withIntermediateDirectories:YES attributes:nil error:&error];
if(result){
NSLog(@"success!");
} else {
NSLog(@"error: %@",error);
}
限りのディレクトリを作成する場所として、あなたは/〜/アプリケーションサポートでそれを置くことができます - ユーザーはそれへのアクセスを必要としない場合は、アプリケーションのデータを保存する場所をアプリのName--です。それ以外の場合は、ユーザーがそれを保存する場所を決定させてくださいます。
- (NSString *)applicationSupportDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory();
return [basePath stringByAppendingPathComponent:@"MyApplication"];
}