Нативная разработка мобильных приложений


Копирование данных из одного файла в другой



Download 3,69 Mb.
Pdf ko'rish
bet82/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   78   79   80   81   82   83   84   85   ...   228
Bog'liq
Нативная разработка мобильных приложений

Копирование данных из одного файла в другой
Чтобы скопировать файл только с использованием методов, предоставляемых 
классом 
String
, потребовалось бы прочитать файл в экземпляр 
String
в памяти 
и затем записать этот экземпляр 
String
в другой файл вызовом 
write(to:atomic
ally:encoding:)
. Это не самый эффективный способ копирования файлов, и его 
не получится использовать, если размер файла превышает объем доступной 
памяти.


124

Файлы
Вот как можно скопировать файл с помощью 
FileManager
:
// Получить ссылку на исходный файл
let originalFile = try? FileManager.default
.url(for: .documentDirectory, in: .userDomainMask, 
appropriateFor: nil, create: false)
.appendingPathComponent("file.txt")
// Получить ссылку на новый файл, куда требуется скопировать данные
let copiedFile = try? FileManager.default
.url(for: .documentDirectory, in: .userDomainMask, 
appropriateFor: nil, create: false)
.appendingPathComponent("newFile.txt")
// Скопировать файл
try? FileManager.default.copyItem(at: originalFile, to: copiedfile)
Это более эффективный способ копирования, чем в первом примере с объ
-
ектом 
String
, потому что 
FileManager
не требует чтения файла в память перед 
копированием. Кроме того, 
FileManager
использует преимущества Apple File 
System (APFS), проприетарной файловой системы Apple, которая поддержива
-
ет невероятно эффективный процесс создания клонов объектов.
В 
FileManager
кроется еще немало приятных сюрпризов, которые вам пред
-
стоит обнаружить. Но и того, о чем мы рассказали, вполне достаточно, чтобы 
начать использовать основные файловые операции в iOS. Обязательно загля
-
ните в документацию Apple, чтобы получить представление обо всех возмож
-
ных операциях.
URL и строки
Во всех примерах кода в этой главе для передачи информации о пути к файлу 
использовались объекты 
URL
вместо строк 
String
. Это связано с тем, что объекты 
URL
, как правило, лучше подходят для хранения информации о пути и делают 
это более эффективно. Точно так же они поддерживают более эффективные 
способы изменения представления пути к файлу, позволяя добавлять катало
-
ги, изменять имена и многое другое.
Некоторые методы, предлагаемые классом 
FileManager
и другими API из 
фреймворка Foundation, используют строки вместо объектов 
URL
. Объекты 
URL
позволяют получить путь в строковом представлении, для чего достаточно об
-
ратиться к переменной экземпляра 
path
. Например:
let fileURL = Bundle.main.url(forResource: "file", withExtension: "txt")!
let filePath = fileURL.path

Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   78   79   80   81   82   83   84   85   ...   228




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish