Большинство операционных систем имеют стандартный каталог предоставленный специально для целей временного хранения файлов. Другие системы также обеспечивают другую временную папку для каждого пользователя. Точное место отличается в зависимости от платформы. Самым безопасным будет использование NSTemporaryDirectory(), чтобы определить соответствующий каталог. Эта функция возвращает временный каталог для текущего пользователя в виде объекта NSString.
Следующий фрагмент кода определяет и затем отображает временный каталог, используя NSTemporaryDirectory() функцию:
NSString *tempdir = NSTemporaryDirectory(); NSLog(@"Temp Dir = %@", tempdir);
Определение домашней папки пользователя
Домашний каталог текущего пользователя может быть определен с помощью NSHomeDirectory() функции. Эта функция не принимает аргументов и возвращает объект NSString, содержащий путь к домашней директории пользователя:
NSString *homedir = NSHomeDirectory(); NSLog(@"Home directory of current user is %@", homedir);
Определение домашней папки конкретно заданного пользователя
Домашний каталог любого пользователя в системе может быть получен с помощью NSHomeDirectoryForUser() функции. Эта функция принимает в качестве единственного аргумента объекта NSString, содержащий имя пользователя и возвращает другой объект NSString, содержащий соответствующий домашний каталог:
NSString *username = @"Paul"; NSString *homedir = NSHomeDirectoryForUser(username); NSLog(@"Home directory of user %@ is %@", username, homedir);
Если заданного пользователя не существует, запрос вернет nil.
Извлечение имени файла
Как уже говорилось ранее, путь может состоять из каталога, в котором находится файл, за которым следует имя файла. Общим требованием при работе с файлами при программировании на любом языке является извлечение только имя файла из пути. Это может быть легко достигнуто с помощью lastPathComponent метод:
NSString *samplepath = @"/Users/demo/objc/sample.m"; NSString *filename = [samplepath lastPathComponent]; NSLog(@"lastPathComponent = %@", filename);
Извлечение расширения файла
Имена файлов после '.' имеют некое расширение. Например, расширение файла myfile.txt является TXT. Расширение файла может быть извлечено из пути с использованием метода pathExtension:
NSString *samplepath = @"/Users/demo/objc/sample.m"; NSString *pathext = [samplepath pathExtension]; NSLog(@"pathExtension = %@", pathext);
Стандартизация пути
Удивительно, как быстро путь может осложниться, особенно когда пользователь перемещаться по файловой системе. Пакет NSUtilities предоставляет метод stringByStandardizingPath. В следующем коде мы будем использовать этот метод, чтобы сделать упрощение пути:
Например: ~demo/objc/code/../header/./../includes/mycode.h
NSString *samplepath = @"/Users/demo/objc/code/../header/./../includes/mycode.h"; NSString *cleanpath = [samplepath stringByStandardizingPath]; NSLog(@"Standardized path = %@", cleanpath);В результате выполнения получим правильный путь: /Users/demo/objc/includes/mycode.h
Разложение пути на его составляющие директории
Метод pathComponents извлекает различные части пути, которые составляют полный путь и возвращает их в NSArray:
NSString *samplepath = @"/Users/demo/objc/code/includes/mycode.h"; NSArray *pathcomponents = [samplepath pathComponents]; for (NSString *component in pathcomponents) { NSLog(@"component = %@", component); }В результате получим массив-список директорий из которых состоит путь:
component = / component = Users component = demo component = objc component = code component = includes component = mycode.h
Немає коментарів:
Дописати коментар