String (contentsOf: URL) возвращает "Нет такого файла или каталога" - PullRequest
0 голосов
/ 14 января 2019

Я быстрый новичок и пытаюсь написать функцию, которая читает содержимое файла * .csv и возвращает двумерный массив [[Double]].

Я использую Xcode 10.1, работающий на macOS 10.14.

Я использую следующий код (на игровой площадке), чтобы прочитать содержимое файла в строку:

let home = FileManager.default.homeDirectoryForCurrentUser // 

let file = "Documents⁩/MyAppName⁩/x.csv"

let url = home.appendingPathComponent(file)

url.path // This gives: "/Users/userName/Documents⁩/MyAppName⁩/x.csv"

let s = try String(contentsOf: url)

Я получаю следующую ошибку:

Ошибка домена = NSCocoaErrorDomain Code = 260 «Файл« x.csv »не может быть открыт, поскольку такого файла нет». UserInfo = {NSFilePath = / Users / userName / Documents / MyAppName / x.csv, NSUnderlyingError = 0x7febf3c991b0 {Ошибка домена = NSPOSIXErrorDomain Code = 2 «Нет такого файла или каталога»}}

Я знаю, что это, наверное, что-то смехотворно простое, я забываю, но я много искал решение и не мог его найти. Есть предложения?

1 Ответ

0 голосов
/ 14 января 2019

Проблема с этой строкой:

let file = "Documents⁩/MyAppName⁩/x.csv"

Вы не можете видеть это, но между s и / есть скрытый символ - U + 2069 - "POP DIRECTIONAL ISOLATE". Снова введите эту строку без специальных символов, и ваш код будет работать.

Кроме того, вот как вы должны создать URL для папки Documents.

let home = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

let file = "MyAppName⁩/x.csv"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...