Привет,
Недавно у меня был случай использования, когда я хотел сохранить несколько файлов в выбранном пользователем каталоге на macOS, но запрашивать у них доступ только один раз. Благодаря песочнице приложения это не так просто, как может показаться.
Для этого я предполагаю, что у вас есть практические знания Swift.
Запись одного файла, выбранного пользователем, выглядит примерно так:
let savePanel = NSSavePanel() if (savePanel.runModal() == NSApplication.ModalResponse.OK) { let result = savePanel.url return result } else { // handle user clicking "cancel" }
Это довольно просто, и вы можете записать URL-адрес файла, который пользователь ввел в NSSavePanel
.
Чтобы сохранить в каталог, мы сделаем что-то очень похожее, но вместо этого будем использовать NSOpenPanel
:
let openPanel = NSOpenPanel() // Set openPanel settings for just directories openPanel.canChooseFiles = false openPanel.canChooseDirectories = true openPanel.allowedFileTypes = ["none"] openPanel.allowsOtherFileTypes = false if (openPanel.runModal() == NSApplication.ModalResponse.OK) { let result = openPanel.urls.first return result } else { // handle user clicking "cancel }
Теперь, пока вы держите здесь ссылку на result
URL, вы сможете сохранять любые файлы в эту папку. Например, вот как вы можете создать несколько URL-адресов файлов внутри этой папки:
let file1 = folderURL.appendingPathComponent("file1.txt") let file2 = folderURL.appendingPathComponent("file2.txt") let file3 = folderURL.appendingPathComponent("file3.txt")
И так далее. Затем вы можете использовать эти file1
и т. Д. Для сохранения файлов в этой папке.
Надеюсь, вы кое-что узнали!
Хлопните в ладоши, если вам это помогло!
Лучший,
Горицвет