Неверный синтаксис имени файла, имени каталога или метки тома - при попытке чтения файла в go lang - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу прочитать содержимое текстового файла.

Когда я передаю имя файла в виде строки:

stream, err = ioutil.ReadFile("sample.txt")

это работает. Это даже работает, если сделать так:

filename := "sample.txt"
stream, err = ioutil.ReadFile(filename)

Но когда я получаю значение имени файла из строкового массива, он не может получить файл и выдает ошибку: Неверный синтаксис имени файла, имени каталога или метки тома

filename := lines[1] //where lines[] is an array of strings
stream, err = ioutil.ReadFile(filename)

Отладочная информация

fmt.Printf("%q\n", lines[1]) // output: mytext2.txt\r

1 Ответ

0 голосов
/ 27 апреля 2018

Приложение должно обрезать \r от конца строки, используя strings.TrimSuffix(filename, "\r") или strings.TrimSpace(filename).

Если OP использовал strings.Split(s, "\n", -1) для создания lines, то можно также избежать трейлинга \r, разделив вместо него "\r\n".

...