2013-04-02 2 views
0

Мне нужно пройти все файлы в структуре папок каталога, к которому обращается приложение с общих серверов. С включением статических библиотек я могу получить доступ к различным серверам и файлам, совместно используемым в них. Список всех серверов хранится в NSArrayПеремещение каталога без рекурсии в iOS

Мне нужно пройти через все папки, совместно используемые сервером для хранения всех файлов в контейнере. Я использовал рекурсию, но это сильно влияет на производительность в случае увеличения количества папок и подпапок.

Может ли кто-нибудь предложить любой алгоритм или логику для перемещения по структуре каталогов.

Пожалуйста, обратитесь к иллюстрации ниже, чтобы иметь представление о структуре.

enter image description here

Одна из возможностей может быть использование потоков, но как разделить логику для перебора всех папок для файлов, так что потоки могут работать над ними параллельно.

Будучи мобильным приложением, у меня нет роскоши памяти.

ответ

0

Примечание: «У меня нет роскоши памяти». - спросите инженера, который работал в 70-х годах. Он скажет, что 1 ГБ ОЗУ, который у вас есть на вашем iPhone, более чем достаточно.

К делу: вы уверены, что действительно рекурсия, которая оказывает такое большое влияние на производительность? Конечно, существуют алгоритмы для перемещения структуры древовидных данных (например, каталога в файловой системе) без рекурсии, с использованием явного стека, но это действительно больно.

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

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