0

ディレクトリのfileSizeを取得するメソッドがあります。ドキュメントで調べましたが、NSFileSizeがどのエンティティを持っているかが宣言されていません。

4

3 に答える 3

5

NSFileManagerドキュメント

NSFileSize

ファイルのサイズをバイト単位で示す値を持つファイル属性ディクショナリのキー。対応する値は、unsignedlonglongを含むNSNumberオブジェクトです。重要ファイルにリソースフォークがある場合、戻り値にはリソースフォークのサイズは含まれません。iOS2.0以降で利用できます。NSFileManager.hで宣言されています。

于 2012-05-31T08:19:14.853 に答える
3

NSFileSizeNSFileManager'sによって返される属性ディクショナリのキーですattributesOfItemAtPath:error:。オブジェクトはNSNumberであり、からを使用してPOD値を取得できますunsignedLongLongValue

NSFileSizeあなたは辞書を手に入れません。どういう意味ですか?

于 2012-05-31T08:20:42.613 に答える
1

ディレクトリにFileSizeがないというヒントのおかげで、私はそれを自分で解決しました。これが私の完成したコードです:

-(float)getSizeOfDirectory:(NSString *)directory{

    NSFileManager *filemgr;
    NSArray *filelist;
    int count;
    float cacheSize = 0;

    filemgr =[NSFileManager defaultManager];
    filelist = [filemgr contentsOfDirectoryAtPath:directory error:NULL];
    count = [filelist count];

    for (NSString *url in filelist) {
        NSData *data = [filemgr contentsAtPath:[NSString stringWithFormat:@"%@/%@",directory,url]];
        cacheSize = cacheSize + ([data length]/1000);
    }

    cacheSize = (cacheSize/1024);
    NSLog(@"cacheSize: %f MB",cacheSize);

    return cacheSize;
}
于 2012-05-31T15:35:20.827 に答える