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