2012-04-06 6 views
1

Ich versuche, die Größe auf der Festplatte einer Datei in iOS mit Ziel C zu bekommen. Ab sofort konnte ich die tatsächliche Größe der Datei und andere Dateiinformationen mit bekommen NSFileManager und dann erhalten die Attribute attributesOfItemAtPath:error, aber nicht die Größe auf der Festplatte. Ich versuchte auch, die Dateigröße von struct stat zu erhalten, aber wieder gibt es mir Größe auf der Scheibe nicht. Ich versuchte, NSTask zu benutzen, um einen Anruf zu du -h zu machen, aber iOS ließ mich nicht andere Prozesse abzweigen. Irgendwelche Ideen sind willkommen :)iOS bekommen Dateigröße auf der Festplatte

Ich weiß, dass diese Frage vielen anderen ähnlich ist, aber der Unterschied ist, dass ich versuche, dies in iOS zu tun, und die meisten Methoden, die in anderen Systemen verwendet werden, funktionieren hier nicht.

Dank

Antwort

3

EDIT: Es lohnt sich Nikolai Ruhe Antwort auf die gleiche Frage zu lesen hier: https://stackoverflow.com/a/28660040/97337.

Informationen zur iOS-Blockgröße finden Sie unter What is the block size of the iphone filesystem?. Die Größe einer Datei auf der Festplatte ist stat Größe aufgerundet auf den nächsten Block.

+0

Also im Grunde muss ich die Blockgröße finden. Ich dachte über die Verwendung von 'st_blocks 512 ', aber ich weiß nicht, ob' st_blocks' immer die Anzahl von 512 Bytes ist oder das von Betriebssystem zu Betriebssystem variiert? Gibt es irgendwelche Methoden, um die Blockgröße zu erhalten? –

+0

getmntinfo(). Siehe die verknüpfte Frage (Was ist die Blockgröße des iphone-Dateisystems? "Die Antwort ist 8k. –

+0

Danke für die Antworten. Offensichtlich lese ich den Link, aber ich möchte wissen, ob es möglich ist mit' st_blocks 512 ". Das hängt davon ab ob stat immer "st_blocks" in Einheiten von 512 meldet. Es scheint mir, dass dies der Fall ist. –