macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

NSDirectoryEnumeratorクラス

INDEX>Foundation> NSDirectoryEnumerator


apple(mac)
apple(iOS)

解説

継承 NSEnumerator : NSObject
準拠 NSFastEnumerator (NSEnumerator)
準拠 NSObject (NSObject)
フレームワーク /System/Library/Frameworks/Foundation.framework
使用可能 Mac OS X v10.0以降,iOS 2.0以降
定義 NSFileManager.h

概要

ディレクトリに含まれるすべてのファイルとディレクトリのパス名を返します
ディレクトリに含まれるファイルとディレクトリを列挙するオブジェクトです。
NSFileManagerで指定したディレクトリのパスを起点としてそのディレクトリ内にあるファイルとディレクトリを列挙します。NSEnumeratorのサブクラスですのでNSEnumeratorと同じように使うことができます。

ファイルやディレクトリの属性を取得

指定したディレクトリの属性を取得するには(– directoryAttributes)メソッドを使用します。
現在のファイルの属性を取得するには(– fileAttributes)メソッドを使用します。
現在の階層を取得するには(– level)メソッドを使用します。

サブディレクトリをスキップ

サブディレクトリの繰り返しをスキップするには(– skipDescendents)メソッドを使用します。

-(void)method001
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *docDirectory = NSHomeDirectory();

    NSDirectoryEnumerator *files = [fileManager enumeratorAtPath:docDirectory];
     NSLog(@"start %@",[files directoryAttributes]);
    id obj;
    while (obj = [files nextObject]) {
        //NSLog(@"value: %@ %d %@", obj,[files level],[files fileAttributes]);
        NSLog(@"value: %@ %d", obj,[files level]);
        //階層が3になったら上の階層に戻る
        if ([files level]>2) {
            [files skipDescendants];
        }
    }    
}

適合するプロトコル

メソッド

ファイルとディレクトリの属性を得る

– directoryAttributes
– fileAttributes
– level

サブディレクトリをスキップ

– skipDescendentsスペルミスのため下記(skipDescendants)を使用してください。

- skipDescendants

サブクラス化の注意

参照