2012-04-06 4 views
1

Я пытаюсь получить размер на диске файла в iOS с помощью Objective C. На данный момент я смог получить фактический размер файла и другой информации о файле, используя NSFileManager, а затем получить атрибуты attributesOfItemAtPath:error, но не размер на диске. Я также попытался получить размер файла с struct stat, но опять же он не дает мне размер на диске. Я попытался использовать NSTask, чтобы позвонить в du -h, но iOS не разрешил мне разблокировать другие процессы. Любые идеи приветствуются :)iOS получить размер файла на диске

Я знаю, что эти вопросы похожи на многие другие, но разница в том, что я пытаюсь сделать это в iOS, и большинство методов, используемых в других системах, здесь не работают.

Благодаря

ответ

3

EDIT: Это стоит прочитать ответ Николая RUHE на тот же вопрос здесь: https://stackoverflow.com/a/28660040/97337.

Для получения информации о размере блока iOS см. What is the block size of the iphone filesystem?. Размер файла на диске будет размером stat, округленным до следующего блока.

+0

Так что в основном мне нужно найти размер блока. Я думал об использовании 'st_blocks * 512', но я не знаю, всегда ли' st_blocks' число 512 байт или это зависит от ОС к ОС? Существуют ли какие-либо методы для получения размера блока? –

+0

getmntinfo(). См. Связанный вопрос (Каков размер блока файловой системы iphone?) Ответ: 8k. –

+0

Спасибо за ответы. Очевидно, я прочитал ссылку, но я хочу знать, возможно ли это с помощью 'st_blocks * 512'. на том, что stat всегда сообщает 'st_blocks' в единицах 512. Мне кажется, что это так. –

Смежные вопросы