文件名、目录名或卷标语法不正确 - 尝试在 go lang 中读取文件时

The filename, directory name, or volume label syntax is incorrect - when trying to readfile in go lang

我想读取文本文件的内容。

当我像这样将文件名作为字符串传递时:

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

应用程序应该 trim 从字符串末尾开始 \r 使用 strings.TrimSuffix(filename, "\r")strings.TrimSpace(filename).

如果 OP 使用 strings.Split(s, "\n", -1) 创建 lines,则尾随 \r 也可以通过拆分 "\r\n" 来避免。