Как я могу узнать, допустимо ли имя файла для цели c? Я ничего не могу найти в задачах NSString «Работа с путями» и не думаю, что создание регулярных выражений вручную - правильный путь.
Правильно ли имя файла
Ответы (1)
На самом деле довольно сложно узнать, действительно ли имя файла. Лучше всего попробовать выполнить с ним операцию и обработать ошибки. Например, если вы хотите прочитать файл, откройте его для чтения. Если файл не подходит для этого, открытие не удастся.
Изменить
Если вы хотите ограничить пользователей выбором путей в текущем каталоге, вы можете сделать это:
NSArray* pathComponents = [string pathComponents];
if ([pathComponents count] != 1)
{
// error
}
person
JeremyP
schedule
16.06.2011
Я хочу, чтобы мои пользователи вводили имя файла. если они введут что-то вроде
../../../../veryDangerusFile
, я не хочу, чтобы программа зависала. Я хочу, чтобы он вообще не разрешал изменение каталога.
- person Dani; 16.06.2011
Почему не просто if ([string rangeOfString: @ /]. Location! = NSNotFound) {// error} ..? Разделение массива, чтобы увидеть, существует ли /, кажется избыточным.
- person Kalle; 02.09.2012
@Kalle: Мне не нравится явно предполагать, что разделителем пути является
/
. Лучше использовать правильный код манипулирования путями файловой системы.
- person JeremyP; 05.09.2012
Думаю, если вы пишете многоплатформенный код, это имеет смысл, да. (Я не.)
- person Kalle; 05.09.2012
aaa/aaa
? он попытается сохранить файл с именемaaa
в папке с именемaaa
. Даже при использованииstringByAppendingPathComponent
все остается как есть. - person Dani   schedule 16.06.2011