Как избежать URL-адреса файловой системы macOS в Swift? - PullRequest
1 голос
/ 17 января 2020

Представьте, что я хочу:

  1. попросить пользователя ввести путь к файлу в виде строки (это может быть что-то вроде 'My' "a/b" folder, которое в macOS является вполне приемлемым именем файла).
  2. создать абсолютное значение URL на основе строки, введенной на шаге 1, например, /Users/john/Desktop/'My' "a/b" folder
  3. сделать что-то в 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"
  1. Это гипотетический пример, который иллюстрирует проблему. Конечно, я на самом деле не пытаюсь создать каталог, используя mkdir из Swift:)
...