Проверить наличие файла на диске? - PullRequest
1 голос
/ 30 октября 2009

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

NSMutableArray *artistCollection;
NSMutableArray *artistCollection_LOAD;

artistCollection = [[NSMutableArray alloc] init];
artistCollection_LOAD = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/data"];
if(artistCollection_LOAD != nil) artistCollection = artistCollection_LOAD;
else NSLog(@"(*) - Saved Data Not Found");

До этого у меня было (см. Ниже), но, как вы можете себе представить, если NSKeyedUnarchiver не нашел файл и вернул "nil", он уничтожил мой ранее выделенный массив.

artistCollection = [[NSMutableArray alloc] init];
artistCollection = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/data"];

1007 * Гэри *

1 Ответ

12 голосов
/ 30 октября 2009

Какао имеет класс, который обеспечивает поддержку для работы с объектами файловой системы: NSFileManager . Вы можете использовать стандартный файловый менеджер (предоставляемый +defaultManager) в сочетании с методом -fileExistsAtPath:, который возвращает значение BOOL для того, существует файл или нет:

if([[NSFileManager defaultManager] fileExistsAtPath:@"/data"]) { /* ... */ }

Имейте в виду, что это ничего не говорит о том, доступен ли файл (с точки зрения прав доступа), является ли он каталогом и т. Д. Для этого есть другие функции NSFileManager.

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