Bash как пути к NSURL или пути к Foundation

В большинстве инструментов командной строки пути к файлам можно указывать в таких форматах: ../someFile, ~/anotherFile, /foo/bar. Как я могу инициировать действительный путь Swift URL или (Foundation) из такого пути?

РЕДАКТИРОВАТЬ:
Возможно, пример кода более понятен, скажем, я хочу инициализировать строку из пути, и у меня есть файл foo в моем пользовательском каталоге, делая это:

try String(contentsOfFile: "~/foo")

Не работает (ошибка - файл не существует)


person Trevör    schedule 31.10.2017    source источник
comment
init(fileURLWithPath path: String, relativeTo base: URL?) для последнего?   -  person Larme    schedule 31.10.2017
comment
@Larme Hum ... если я прав, последний не является относительным URL-адресом (он просто указывает ресурс, помещенный в корень текущего диска в папке / foo)   -  person Trevör    schedule 31.10.2017
comment
Возможный дубликат stackoverflow.com/questions/38173050/   -  person Martin R    schedule 31.10.2017
comment
@MartinR - этот ответ устарел.   -  person Grimxn    schedule 31.10.2017


Ответы (1)


В Swift вы можете сделать:

let str = "~/Documents"
// NSString has a function for decoding this, not available to String:
let str2 = (str as NSString).standardizingPath as String 

// Swift deprecated the String path manipulation functions,
// but supplies them as part of NSURL:
let url = URL(fileURLWithPath: str)
let url2 = url.standardizedFileURL // Expands the URL
person Grimxn    schedule 31.10.2017