Представьте, что я хочу:
- попросить пользователя ввести путь к файлу в виде строки (это может быть что-то вроде
'My' "a/b" folder
, которое в macOS является вполне приемлемым именем файла). - создать абсолютное значение
URL
на основе строки, введенной на шаге 1, например, /Users/john/Desktop/'My' "a/b" folder
- сделать что-то в
Process
с этим URL, например, выполнить /bin/mkdir "/Users/john/Desktop/'My' \"a:b\" folder"
*
Я не уверен, как этого добиться в Swift. Я искал документы URL
и не видел ничего общего с выходом файловой системы macOS. Я уверен, что должен быть канонический метод для достижения этой цели, а не серия замен строк, которые мы надеемся охватить.
let pathString = """
/Users/john/Desktop/'My' "a/b" folder
"""
let url = URL(fileURLWithPath: pathString)
let urlString = "\"" + url.path + "\""
var process = Process()
process.launchPath = "/bin/mkdir"
process.arguments = [urlString]
Я бы хотел, чтобы urlString был чем-то вроде "/Users/john/Desktop/'My' \"a:b\" folder"
. С этим я мог бы создать команду, такую как:
mkdir "/Users/john/Desktop/\'My\'\ \"a\:b\"\ folder"
- Это гипотетический пример, который иллюстрирует проблему. Конечно, я на самом деле не пытаюсь создать каталог, используя
mkdir
из Swift:)