Мое приложение может генерировать некоторую личную информацию для пользователя, и пользователь может получить к ней доступ только через приложение, а не через приложение Файлы. До сих пор я обнаружил, что нужно установить каталог из documentDirectory в libraryDirectory. Но проблема в том, что я даже не вижу файл в приложении.
Что у меня есть: Сохранение файла
func saveFile(xml: String) {
let fileName = "myCCD"
let DocumentDirURL = try! FileManager.default.url(for: .libraryDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("xml")
let text = xml
do {
try text.write(to: fileURL, atomically: true, encoding: .utf8)
} catch {
print("failed with error: \(error)")
}
}
Файл отступления
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
guard let selectedFileURL = urls.first else {
return
}
let dir = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!
let sandboxFileURL = dir.appendingPathComponent(selectedFileURL.lastPathComponent)
if NSURL(fileURLWithPath: sandboxFileURL.path).pathExtension != "xml"{
showAlertOK(title: "Invalid File", message: "Health record must be an XML file!", sender: self)
print("EHR must be an XML file!")
return
}
if !FileManager.default.fileExists(atPath: sandboxFileURL.path) {
do {
try FileManager.default.copyItem(at: selectedFileURL, to: sandboxFileURL)
print("Copied file to app!")
} catch {
print("Error copying file to app: \(error)")
}
} else {
print("File already exists in app")
}
//Do something...
}
Когда всплывающее окно просмотра выбора документов, я не вижу файл, который я только что сохранил ранее. Есть ли способ получить к нему доступ только через приложение? Спасибо!