Swift:
Создание временного файла
Как это сделать:
Swift делает создание временных файлов довольно простым с помощью класса FileManager
. Вот как быстро создать временный файл и записать в него текст:
import Foundation
// Создание URL временной директории
let tempDirectoryURL = FileManager.default.temporaryDirectory
// Создание уникального имени файла
let fileName = UUID().uuidString
// Построение полного URL файла
let fileURL = tempDirectoryURL.appendingPathComponent(fileName)
// Пример текста для записи
let sampleText = "Привет, временный мир!"
do {
// Запись текста во временный файл
try sampleText.write(to: fileURL, atomically: true, encoding: .utf8)
print("Файл создан: \(fileURL)")
} catch {
print("Не удалось записать файл: \(error)")
}
// Пример вывода:
// Файл создан: file:///path/to/temp/directory/E0B4952E-5BEE-47E7-B5BB-DA5E6AF1EDC9
Чтобы прочитать файл, просто сделайте всё наоборот—вот как:
do {
// Чтение текста из временного файла
let savedText = try String(contentsOf: fileURL, encoding: .utf8)
print("Содержимое файла: \(savedText)")
} catch {
print("Не удалось прочитать файл: \(error)")
}
// Пример вывода:
// Содержимое файла: Привет, временный мир!
Подчистите за собой, удалив временный файл:
do {
// Удаление временного файла
try FileManager.default.removeItem(at: fileURL)
print("Временный файл удален.")
} catch {
print("Не удалось удалить файл: \(error)")
}
// Пример вывода:
// Временный файл удален.
Подробнее
До FileManager
люди управляли файлами более громоздкими способами. Помните tmpfile()
в C? FileManager
в Swift в сравнении с ним - это просто и современно.
Альтернативы? Конечно. Вы можете использовать представления в памяти, такие как Data
или String
, идеально подходящие для действительно временных данных ограниченного размера. Другой путь - использование собственного менеджера временных файлов для большего контроля, но это обычно избыточно.
Самое важное: FileManager
использует системную временную директорию, которая периодически очищается, но не после каждого запуска программы. Имейте это в виду, когда речь идет о безопасности или чувствительных данных — при необходимости очищайте вручную.
Смотрите также
Посмотрите эти источники, чтобы узнать больше о работе с файлами в Swift: