2 апр. 2014 г.

NSFileManager - работа с каталогами и файлами (примеры). Часть 1

Инициализация NSFileManager

Класс NSFileManager содержит метод класса с именем defaultManager, который используется для создания экземпляра класса. Например: получить ссылку на экземпляр объекта NSFileManager:

NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];

Проверка на наличие или отсутствие файла

Класс NSFileManager содержит метод экземпляра с именем fileExistsAtPath, который проверяет, существует ли указанный файл. Метод принимает в качестве аргумента объект NSString, содержащий путь к файлу и возвращает логическое ДА или НЕТ, указывающее на наличие или отсутствие этого файла:
 
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath: @"/tmp/myfile.txt" ] == YES)
        NSLog (@"Файл присуствует");
else
        NSLog (@"Файл не найден");
 
Сравнение содержимого двух файлов

Содержимое двух файлов можно сравнить на равенство с использованием метода contentsEqualAtPath. Этот метод принимает в качестве аргументов пути к двум файлам, которые будут сопоставлены и возвращает логическое ДА или НЕТ, чтобы указать, соответствует ли содержимое этих файлов:
 
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
if ([filemgr contentsEqualAtPath: @"/tmp/myfile.txt" andPath: @"/tmp/sales.txt"] == YES)
        NSLog (@"Содержимое файлов одинаково");
else
        NSLog (@"Содержимое файлов разное");
 
Проверка прав файла на чтение/запись/запуск/удаление

Большинство операционных систем обеспечивают определенный уровень контроля доступа к файлу. Самый быстрый способ узнать, может ли Ваше приложение иметь доступ к использованию файла - isReadableFileAtPath, isWritableFileAtPath, isExecutableFileAtPath и метод isDeletableFileAtPath. Каждый метод принимает один аргумент в виде пути к файлу и возвращает логическое ДА или НЕТ. Например, следующий фрагмент кода проверяет ести ли доступ к файлу на запись в него:
 
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
if ([filemgr isWritableFileAtPath: @"/tmp/myfile.txt"]  == YES)
        NSLog (@"Разрешено для записи/редактирования данных");
else
        NSLog (@"Только чтение");
 
Перемещение/Удаление файла

Файл может быть переименован (при условии, соответствующих прав) с использованием метода moveItemAtURL. Этот метод возвращает логическое ДА или НЕТ и принимает в качестве аргументов путь для файла, который будет перемещен, путь назначения и дополнительный объект NSError, в который будет помещена информация, описывающая любые ошибки, возникающие в процессе эксплуатации. Если информация по ошибкам не требуется, этот аргумент может быть установлен в NULL. Обратите внимание, что если по такому пути файл уже существует, то эта операция не будет выполнена.
 
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
NSURL *oldPath = [NSURL fileURLWithPath:@"/tmp/myfile.txt"];
NSURL *newPath= [NSURL fileURLWithPath:@"/tmp/newfile.txt"];
[filemgr moveItemAtURL: oldPath toURL: newPath error: nil];
 
Продолжение в следующей части.

0 коментарі:

Отправить комментарий