10

私がやりたいことは簡単に思えます: アプリの特定の「ディレクトリ」にあるファイル名の配列を取得します。しかし、NSFileManager と NSBundle をいじるほど、迷子になっていくことに気づきます...iPhone Xcode プロジェクトの特定のディレクトリに整理されたファイルのファイル名を取得したいだけです...例: 問題のディレクトリは「イメージ」(Xcode のプロジェクト アイコンの下にある「追加 > 新規グループ」を使用して作成) と呼ばれ、10 個の .png 画像が含まれています。それは簡単に思えますが、私はどこにも行きません。答えを見つけるための助けをいただければ幸いです。

Q:アプリの特定のディレクトリにあるすべてのファイルのファイル名の NSArray を取得するにはどうすればよいですか?

4

3 に答える 3

29

フォルダーを App バンドルの一部にする場合は、グループではなく Resources グループ内にフォルダー参照を作成する必要があります (Xcode では黄色ではなく青色のフォルダーとして表示されます)。

これを行うには、Finder からフォルダーをドラッグし、プロンプトが表示されたらフォルダー参照を選択します。

それができたら、次のような方法でフォルダーの内容を取得できるはずです。

NSError *error = nil;

NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath]
                            stringByAppendingPathComponent:@"YourFolder"];

NSArray  *yourFolderContents = [[NSFileManager defaultManager] 
                                contentsOfDirectoryAtPath:yourFolderPath error:&error];
于 2009-08-13T13:58:38.650 に答える
9

受け入れられた回答は、何年も前から廃止されています。代わりに以下を使用する必要があります。

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error

更新: @macserv は、これを投稿した後、受け入れられた回答を更新しました。

于 2012-03-29T21:51:24.787 に答える
1

現在、これはあなたがそれを行う方法です:

  1. Finder から、フォルダーをプロジェクトのナビゲーターにドラッグ アンド ドロップすると、次のポップアップが表示されます。 ここに画像の説明を入力
  2. そのスクリーンショットでわかるように、Create folder referencesを選択する必要があります。
  3. この投稿の解決策があなたに指示していることを実行してください。つまり:

    NSError *エラー = nil;

    NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"YourFolder"];

    NSArray *yourFolderContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:yourFolderPath エラー:&error];

于 2016-09-10T16:05:57.777 に答える