0

includingPropertiesForKeys:NSFileManager メソッドで言及したプロパティ (このメソッドの一部で NSArray として要求するファイル属性を意味します) にアクセスする方法がわかりません。

-(NSArray *)contentsOfDirectoryAtURL:<#(NSURL *)#> 
          includingPropertiesForKeys:<#(NSArray *)#> 
                             options:<#(NSDirectoryEnumerationOptions)#> 
                               error:<#(NSError *__autoreleasing *)#>

ファイルへの NSURL オブジェクトの配列を含む NSArray オブジェクトを取得します。

したがって、このプロパティを取得することはできません (方法がわかりません)。

そのプロパティを取得するには、次の構造を使用する必要があります。

NSArray *arrayOfNSURLs = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:myFolderURL
                              includingPropertiesForKeys:@[NSURLContentModificationDateKey, NSURLVolumeIdentifierKey, NSURLLocalizedNameKey,NSURLLocalizedTypeDescriptionKey]
                                                 options:NSDirectoryEnumerationSkipsHiddenFiles
                                                   error:nil];

// I will call all below this 'second part'

id test;
for (id file in arrayOfNSURLs) {
    if ([file isKindOfClass:[NSURL class]]) {
        [file getResourceValue:&test forKey:NSURLContentModificationDateKey error:nil];

        NSLog(@"%@ %@",file ,test);

    }

}

ご覧のとおり、NSURL メソッドを使用する必要がありますgetResourceValue:forKey:error:。しかし、ちょっと待ってください。NSFileManagermethodcontentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:でこのキーについて言及しているのは、includingPropertiesForKeys:部分的にですか???

nil一部の引数として入れようとしました...includingPropertiesForKeys:が、キーの配列を追加することとnilを追加することに違いはありません.「2番目の部分」はとにかくコンテンツ変更キーを提供します.

だから、私の質問は簡単です: なぜcontentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:メソッドのキー引数にプロパティが必要なのですか? コードの 2 番目の部分なしで、このキーに記載されている情報を取得する方法はありますか?

ありがとう。

4

1 に答える 1

1

contentsOfDirectoryAtURL:includePropertiesForKeys:options:error: のキーの目的は、ドキュメントによると、次のとおりです。 .

これらの値は引き続き getResourceValue:forKey:error: を使用して取得する必要がありますが、値は NSURL オブジェクト自体に格納されるようになったため、取得するために再度ディスクにアクセスする必要はありません。

于 2013-08-12T00:49:45.573 に答える