お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【iOS】サンドボックス内にある、指定した拡張子のファイルをリスト化する

今回は題名にもありますが、サンドボックス内に保存されている指定した拡張子のファイルをリスト化して、テーブルビューにファイル名を表示させる方法を書きたいと思います。

サンドボックス内のファイル

XcodeのOrganizerを開くとサンドボックス内のファイルを見ることができます。
サンドボックス内には複数の画像ファイルを用意しています。

これらの拡張子「jpg」ファイルのみを抜き出し、ファイル名を配列に格納してリスト化します。
sandbox

ソースコード

サンドボックス内にあるファイルやディレクトリの一覧を取得するにはNSFileManagerクラスの「contentsOfDirectoryAtPath:error:」メソッドを使用します。
また、他の拡張子との比較には [content hasSuffix:extension]で文字列「content」が”.jpg”で終わる文字列であればTRUEを返し、”.jpg”のみを抜き出します。
あとは[self getFileList:@”.jpg”]で実行します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self getFileList:@".jpg"]; // 指定する拡張子
}
// 指定した拡張子のファイルをリスト化------------------------------------------------------------------------------------------------
-(NSArray *)getFileList:(NSString *)extension{
    // 格納する配列を生成する
    _fileList = [[NSMutableArray alloc] init];
    // パスを指定する
    NSFileManager* fileManager = [[NSFileManager alloc] init];
    NSString *itemPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSString *directoryPath = [itemPath stringByAppendingPathComponent:@"指定フォルダ名前"];
    for(NSString *content in [fileManager contentsOfDirectoryAtPath:directoryPath error:nil]) {
        // 拡張子を抜く-----------------------
        if ([content hasSuffix:extension]) {
            NSString *content2 = [content stringByDeletingPathExtension];
       // 配列に追加する
            [_fileList addObject:content2];
            NSLog(@"array:%@", _fileList);
        }
    }
    return _fileList;
}

実行結果

抜き出した配列を見てみましょう。
スクリーンショット-2014-02-22-13.15.31_03
指定したファイルのファイル名だけを格納しています。

テーブルビューに反映させる

先ほど抜き出した配列をテーブルビューに反映させるとサンドボックス内の指定したファイル名を表示することができます。
list

今回はこれでおしまいです。

参考にしたURLです。
Objective-C – 特定の拡張子のファイルをリスト化 – Qiita

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00