NSFileManager находит файлы в папке только тогда, когда он работает под отладчиком - PullRequest
0 голосов
/ 14 ноября 2011

Когда я запускаю следующий код в отладчике Xcode, он успешно находит пакет с расширением .app, но когда я запускаю его, отдельный объект «file» равен nil. На самом деле, когда я делал NSLogs, folderEnum также был нулевым. Обратите внимание, что folderPath указывает на папку, которая находится в том же каталоге, что и исполняемый файл программы.

NSFileManager *localFileManager = [[NSFileManager alloc] init];
NSDirectoryEnumerator *folderEnum = [localFileManager enumeratorAtPath:folderPath];
NSString *file;
while (file = [folderEnum nextObject]) {
  if ([[file pathExtension] isEqualToString: @"app"]) {
     break;
  }
}

Есть идеи? Что-то связанное с правами доступа к системным файлам Mac?

Редактировать

Мне следовало бы упомянуть, что folderPath был относительным, а не абсолютным путем. Поэтому я изменил folderPath на путь [[NSBundle mainBundle] bundlePath], и теперь он работает. Но если кто-то может пролить свет на то, почему относительный путь не работает, это здорово.

1 Ответ

1 голос
/ 14 ноября 2011

Имеет ли значение изменение первой строки:

NSFileManager *localFileManager = [NSFileManager defaultManager];

?Вы просто пытаетесь найти путь для своего приложения?(Есть более простые способы)

...