Каталоги под путь в Objective-C - PullRequest
1 голос
/ 27 февраля 2010

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

[[NSFileManager defaultManager] subpathsOfDirectoryAtPath:@"/Users/rob5408/Documents" error:&error];

... но как я могу просеять это дальше, чтобы получить только каталоги? Я посмотрел на ...

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory;

... но это кажется утомительным, и логический указатель действительно сбил меня с толку. Есть идеи?

1 Ответ

2 голосов
/ 27 февраля 2010

... но как я могу просеять это дальше, чтобы получить только каталоги? Я посмотрел на ...

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory;

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

Немного утомительно, но не слишком сложно в использовании:

BOOL isDir;
if ([mgr fileExistsAtPath:path isDirectory:&isDir] && isDir) {
     //It's a directory
}

Вы всегда можете создать функцию (или категорию в NSFileManager, если вы соответствующим образом пометите метку для селектора метода), чтобы обернуть этот метод:

if (R5408_ObjectAtPathIsDirectory(path)) {
     //It's a directory
}

Обратите внимание, что если не каталог, это не значит, что это обычный файл; Еще одна вероятная возможность (есть и другие возможности) - это символическая ссылка. И наоборот, псевдоним будет выглядеть как обычный файл, но вас может заинтересовать оригинал, а не псевдоним.

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