【发布时间】:2012-11-13 00:55:07
【问题描述】:
我正在使用 NSFileManager 来获取我们应用程序中某些文件的大小。
每个文件都由一个单独的线程检查,所有文件的结果都是相同的错误值。在单独的线程中为每个文件运行以下代码:
NSFileManager *fileManager= [[NSFileManager alloc] init];
NSUInteger completedFileSize = [[[fileManager attributesOfItemAtPath:fileName error:&error] objectForKey:NSFileSize] unsignedLongValue];
NSLog(@"Part %lu: %@ => size:%lu actual size:%lu", myPart.SequenceNumber, fileName, completedFileSize, myPart.Size);
输出是:
第 1 部分:/Users/David/TEMP/245E0BF53ECA/part1 => 大小:36864 实际大小:37187
第 5 部分:/Users/David/TEMP/245E0BF53ECA/part5 => 大小:36864 实际大小:37187
第 2 部分:/Users/David/TEMP/245E0BF53ECA/part2 => 大小:36864 实际大小:37187
第 4 部分:/Users/David/TEMP/245E0BF53ECA/part4 => 大小:36864 实际大小:37187
第 3 部分:/Users/David/TEMP/245E0BF53ECA/part3 => 大小:36864 实际大小:37187
第 6 部分:/Users/David/TEMP/245E0BF53ECA/part6 => 大小:36864 实际大小:37187
第 7 部分:/Users/David/TEMP/245E0BF53ECA/part7 => 大小:36864 实际大小:37186
第 0 部分:/Users/David/TEMP/245E0BF53ECA/part0 => 大小:36864 实际大小:37189
终端上 ls -l 命令的输出与之前保存在 myPart.Size
中的正确文件大小相同-rw-r--r-- 1 David 员工 37189 Nov 25 11:25 part0
-rw-r--r-- 1 David Staff 37187 Nov 25 11:25 part1
-rw-r--r-- 1 David 员工 37187 Nov 25 11:25 part2
-rw-r--r-- 1 David 员工 37187 Nov 25 11:25 part3
-rw-r--r-- 1 David 员工 37187 Nov 25 11:25 part4
-rw-r--r-- 1 David 员工 37187 Nov 25 11:25 part5
-rw-r--r-- 1 David 员工 37187 Nov 25 11:25 part6
-rw-r--r-- 1 David 员工 37186 Nov 25 11:25 part7
我使用的是 OS X 10.8 和 Xcode 4.5。
任何帮助将不胜感激。
【问题讨论】:
-
你不说
myPart.Size是怎么计算出来的。 -
您确定 fileName 变量设置正确并且不需要 [NSString stringWithFormat:@"%@%lu", fileName, myPart.SequenceNumber] 之类的东西吗?
-
是的,文件名是正确的,因为日志表明了这一事实。
-
This: NSLog(@"Part %lu: %@ => size:%lu 实际大小:%lu", myPart.SequenceNumber, fileName, completedFileSize, myPart.Size);无法产生您列出的输出。
-
谢谢。我在复制输出时出错。我修复了它,但它真的没有多大帮助。
标签: objective-c macos cocoa nsfilemanager