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 11 月 25 日 11:25 part0
-rw-r--r-- 1 David スタッフ 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 11 月 25 日 11:25 part4
-rw-r--r-- 1 David スタッフ 37187 11 月 25 日 11:25 part5
-rw-r--r-- 1 David スタッフ 37187 11 月 25 日 11:25 part6
-rw-r--r-- 1 David スタッフ 37186 11 月 25 日 11:25 part7
OS X 10.8 と Xcode 4.5 を使用しています。
どんな助けでも大歓迎です。