0

I have a method which gives me the fileSize of a directory. I looked up in the Documentation but it's not declared which entity NSFileSize has.

4

3 回答 3

5

NSFileManager 文档中:

NSFileSize

文件属性字典中的键,其值指示文件的大小(以字节为单位)。对应的值是一个包含 unsigned long long 的 NSNumber 对象。重要如果文件有资源叉,则返回的值不包括资源叉的大小。在 iOS 2.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 回答