Как проверить правильность имени файла в Mac OS X - PullRequest
2 голосов
/ 31 августа 2010

Кто-нибудь знает, как проверить, является ли строка допустимым именем файла в Mac OS X, кроме попыток создать файл с этим именем?

У меня проблема в том, что иногда имя файла может быть слишком большим. OSX имеет ограничение в байтах для имен файлов, а с помощью символов Юникода вы не можете просто проверить длину строки, поскольку они могут быть больше 1 байта.

Ответы [ 3 ]

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

В Mac OS X файл является не чем иным, как ресурсом; и путь / имя файла это местоположение. Создайте объект NSURL , используя + (id) fileURLWithPath: (NSString *) путь . Метод вернет действительный объект только в том случае, если имя файла допустимо.

Выдержка из Apple Docs:

  • NSURL объекты могут использоваться для ссылки на файлы, и являются предпочтительным способом сделать это.
  • Класс NSURL не сможет создать новый объект NSURL, если пройденный путь не является корректным - путь должен соответствовать RFC 2396.
0 голосов
/ 31 августа 2010

Использовать NSFileManager.

- Обновлено:

Попробуйте это:

if([testPath compare: [NSString stringWithUTF8String:[testPath fileSystemRepresentation]]] == NSOrderedSame) {
    //testPath is a valid Path
}

Никаких гарантий на то, что он будет делать, нет.

0 голосов
/ 31 августа 2010

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

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