1

私は Objective-c を初めて使用します。ローカル ディレクトリの詳細情報 (名前、サイズ、最終変更時刻など) を取得したいと考えています。役立つAPIはありますか?

4

3 に答える 3

5

ここで答えが見つかることを願っています:

ファイルまたはディレクトリの属性は、 attributesOfItemAtPathメソッドを使用して取得できます 。これは、ディレクトリのパスと、エラーに関する情報が配置されるオプションの NSError オブジェクトを引数として取ります (この情報が必要ない場合は、NULL として指定できます)。結果は NSDictionary ディクショナリ オブジェクトの形式で返されます (ディクショナリ オブジェクトの操作の詳細については、Objective-C ディクショナリ オブジェクトを参照してください)。

この辞書のいくつかのキー:

NSFileType
NSFileTypeDirectory
NSFileTypeBlockSpecial
NSFileTypeUnknown
NSFileSize
NSFileModificationDate
NSFileOwnerAccountName
NSFileGroupOwnerAccountName
NSFilePosixPermissions
NSFileSystemNumber
NSFileCreationDate
NSFileOwnerAccountID
NSFileGroupOwnerAccountID

上記の記事の例:

(次のコードの抜粋を使用して、/tmp ディレクトリの作成日、ファイル タイプ、および POSIX アクセス許可を抽出できます)

NSFileManager *filemgr;
NSDictionary *attribs;

filemgr = [NSFileManager defaultManager];

attribs = [filemgr attributesOfItemAtPath: @"/tmp" error: NULL];

NSLog (@"Created on %@", [attribs objectForKey: NSFileCreationDate]);
NSLog (@"File type %@", [attribs objectForKey: NSFileType]);
NSLog (@"POSIX Permissions %@", [attribs objectForKey: NSFilePosixPermissions]);
于 2012-05-13T07:32:22.127 に答える
2

ブリーディング エッジ (2012 年 5 月 13 日) は、CFURL/NSURL プロパティを使用しています。

id outName = nil;
NSString * key = NSURLNameKey;
NSError * outError = nil;

if (YES == [url getResourceValue:&value forKey:key error:&outError]) {
  NSString * name = outName;
  ...
}

注: 必要なものだけをリクエストするようにしてください。また、冗長なリクエストを最小限に抑えるためのバッチ リクエスト メソッド/関数があることに注意してください。NSURL を使用している場合は、次を使用できます。

NSArray * keys = ...;
NSError * outError = nil;
NSDictionary * properties = [url resourceValuesForKeys:keys error:&outError];
于 2012-05-13T08:19:10.187 に答える
0

NSFileManager APIを調べる必要があります。特に-attributesOfItemAtPath:error:方法。

于 2012-05-13T07:31:44.020 に答える