Как избежать пути файловой системы для iPhone? - PullRequest
2 голосов
/ 14 апреля 2009

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

Я бы подумал, что есть библиотека NS, которая сделает это для меня, поскольку это «простой» тип функции, который, вероятно, не следует переписывать каждому разработчику, но я не могу найти его, если он есть.

Спасибо!

Редактировать: Спасибо за ответ, stringByStandardizingPath: выглядит хорошо для получения реального пути к файлу для строки, но то, что я ищу, будет делать что-то похожее на следующее:

in:  @"~/Foo/Bar"
out: @"__Foo_Bar" or @"FooBar" etc.

По существу, это приведет к удалению любых небезопасных символов из компонента пути к файлу.

После продолжающихся исследований похоже, что почти любой символ Юникода, кроме "/", разрешен в пути к файлу. Однако пути к файлам обычно хрупки и могут управляться escape-последовательностью и т. Д., Поэтому я надеюсь, что у большого мозга Apple есть API для удаления компонента пути к файлу небезопасных значений.

Ответы [ 2 ]

1 голос
/ 14 апреля 2009

Вы можете попробовать NSString's - (NSString *)stringByStandardizingPath

0 голосов
/ 17 апреля 2009

Я бы сказал, что используйте белый список, может быть, [a-zA-Z0-9_. ], или, может быть, что-то более сложное, и просто закодируйте все остальные в hex, подобно тому, как url ​​кодирует пробелы в "% 20"

.
...