получить размер содержимого файла в iphone - PullRequest
1 голос
/ 20 мая 2011

Пишу приложение для iphone для чтения текстового файла с использованием NSData.

NSFileHandle *fileRead;

// this may lead to crash or memory issue, if the file size is about 10 mb or more

NSData *data =   [fileRead readDataOfLength:(entire contents of the file)]; 

Например, если размер файла составляет 8 КБ, мы можем прочитать его за 8 итераций по 1 КБ за цикл.

Перед чтением файла, как мы можем найти размер файла content.so, чтобы мы могли написать код оптимизированным способом для эффективного чтения файла?

Пожалуйста, дайте мне ваши предложения ....

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

В iPhone есть все стандартные API POSIX, поэтому вы можете использовать stat ("file.txt", & st), где st - это "struct stat".Член st.st_size предоставит вам размер файла в байтах.

1 голос
/ 20 мая 2011

Если вы действительно хотите прочитать весь файл, просто используйте readDataToEndOfFile и не беспокойтесь об определении длины заранее.

Из NSFileHandle вы можете найти длину сначала seekToEndOfFile, а затем offsetInFile. Если у вас есть фактическое имя файла, вы можете использовать NSFileManager attributesOfItemAtPath:error: для получения длины (как с C stat). Или, в этом отношении, вы могли бы фактически использовать stat или fstat в дескрипторе файла, возвращенном методом fileDescriptor NSFileHandle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...