Копирование файла
Копирование файлов может быть достигнуто с помощью метода copyItemAtPath. Как и в методе перемещения, этот метод принимает в качестве аргументов путь-источник и путь назначения, а также дополнительный объект NSError. Успех операции в возвращенном логическое значении:
NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager copyItemAtPath:@"/tmp/myfile.txt" toPath:@"/Users/demo/newfile.txt" error:NULL] == YES) { NSLog(@"Скопировано"); } else { NSLog(@"Ошибка копирования"); }
Удаление файла
Метод removeItemAtPath удаляет указанный файл из файловой системы. Метод принимает в качестве аргументов путь к файлу и дополнительный объект NSError. Успех операции, как обычно - в виде возвращения логического завершения операции ДА или НЕТ:
NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager removeItemAtPath:@"/tmp/myfile.txt" error:NULL] == YES) { NSLog(@"Файл удален"); } else { NSLog(@"Ошибка удаления файла"); }
Создание ссылки на файл
Ссылка на конкретный файл может быть создана с использованием метода createSymbolicLinkAtPath. Этот метод принимает в качестве аргументов путь к ссылке, и путь к файлу, для которого эта ссылка создается и дополнительный объект NSError. Например, следующий код создает ссылку /tmp/myfile2.txt, которая связывает с уже существующим файлом /tmp/myfile.txt:
NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager createSymbolicLinkAtPath:@"/tmp/myfile2.txt" withDestinationPath:@"/tmp/myfile.txt" error:NULL] == YES) { NSLog(@"Ссылка создана успешно"); } else { NSLog(@"Ошибка"); }
Чтение и запись файлов
Класс NSFileManager содержит в себе некоторые основные методы для чтения и записи файла. Но эти возможности несколько ограничены по сравнению с вариантами, предусмотренными в классе NSFileHandle (в будущей статье об этом расскажу), но тем не менее полезны и эти методы.
Во-первых, содержимое файла может быть прочитано и храниться в объекте NSData за счет использования метода contentsAtPath:
NSFileManager *fileManager = [NSFileManager defaultManager]; NSData *dataBuffer = [fileManager contentsAtPath:@"/tmp/myfile.txt"];Дальше содержимое файла в объекте NSData можно обработать, и новые данные могут впоследствии быть записаны в новый файл с помощью метода createFileAtPath:
[fileManager createFileAtPath:@"/tmp/newfile.txt" contents:dataBuffer attributes:nil];В приведенном выше примере мы скопировали содержимое из существующего файла в новый файл. К сожалению это не дает нам никакого контроля над тем, сколько данных будет читаться или записываться и не позволяет добавлять данные в конец существующего файла. Если файл /tmp/newfile.txt в приведенном выше примере уже существовал, то и любые в нем содержащиеся данные, будут перезаписаны содержимым исходного файла. Нужен некоторый более гибкий механизм. Это предусмотрено в классе NSFileHandle, о котором я расскажу немножко позже.
Немає коментарів:
Дописати коментар