Как получить путь к домашнему каталогу пользователя (Users / «имя пользователя»), не зная имени пользователя в Swift3
5617 просмотра
3 ответа
Я делаю func, который редактирует текстовый файл в Users / johnDoe Dir.
let filename = "random.txt"
let filePath = "/Users/johnDoe"
let replacementText = "random bits of text"
do {
try replacementText.write(toFile: filePath, atomically: true, encoding: .utf8)
}catch let error as NSError {
print(error: + error.localizedDescription)
}
Но я хочу иметь универсальный путь. Что-то вроде
let fileManager = FileManager.default
let downloadsURL = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first! as NSURL
let downloadsPath = downloadsURL.path
но для папки JohnDoe. Я не смог найти никакой документации о том, как это сделать. Самая близкая вещь, которую я мог найти упомянутой, используя NSHomeDirectory (). И я не уверен, как использовать это в этом контексте.
когда я пытаюсь добавить это как ...
let fileManager = FileManager.default
let downloadsURL = FileManager.default.urls(for: NSHomeDirectory, in: .userDomainMask).first! as NSURL
let downloadsPath = downloadsURL.path
Я получаю ошибку:
"Невозможно преобразовать значение типа 'String' в ожидаемый тип аргумента 'FileManager.SearchPathDirectory'"
Я пробовал это .NSHomeDirectory, .NSHomeDirectory (), NShomeDirectory, NShomeDirectory ()
Автор: JonnyTombstone Источник Размещён: 12.11.2019 09:03Ответы (3)
18 плюса
Вы можете использовать свойство FileManager homeDirectoryForCurrentUser
let homeDirURL = FileManager.default.homeDirectoryForCurrentUser
Если вам это нужно для работы с более ранними версиями ОС, чем 10.12, вы можете использовать
let homeDirURL = URL(fileURLWithPath: NSHomeDirectory())
print(homeDirURL.path)
Автор: Leo Dabus
Размещён: 29.12.2016 05:26
3 плюса
Должен быть более простой способ, но в худшем случае это должно сработать:
let filePath = NSString(string: "~").expandingTildeInPath
Автор: Phillip Mills
Размещён: 29.12.2016 04:17
-1 плюса
Может быть
FileManager.homeDirectoryForCurrentUser: URL
Это перечислено как "бета" для 10.12, все же.
Автор: Mike Размещён: 29.12.2016 05:29Вопросы из категории :
- swift Как я могу программным образом определить, работает ли мое приложение в симуляторе iphone?
- swift iOS: Convert UTC NSDate to local Timezone
- swift Как установить цель и действие для UIBarButtonItem во время выполнения
- swift Жирный и не жирный текст в одном UILabel?
- swift Найти касательную точки на кубической кривой безье
- swift Как я могу рассчитать разницу между двумя датами?
- swift How to get text / String from nth line of UILabel?
- swift Можно ли программно прокрутить до нужной строки в UIPickerView?
- swift Отключение клавиатуры в UIScrollView
- swift Как контролировать межстрочный интервал в UILabel
- swift3 Программно создать NSWindow
- swift3 Извлечение значений RGB из UIColor
- swift3 Как ввести формат валюты в текстовое поле (справа налево) с помощью Swift?
- swift3 Определить размер UILabel на основе строки в Swift
- swift3 печать без новой строки в Swift
- swift3 Whats the Swift animate WithDuration syntax?
- swift3 попробуй, попробуй! & пытаться? какая разница, и когда использовать каждый?
- swift3 Detecting shake in AppDelegate
- swift3 Проверьте, включены ли службы определения местоположения
- swift3 iOS - проблема с жестом при просмотре изображения