文件名、目录名或卷标语法不正确 - 尝试在 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"
来避免。
我想读取文本文件的内容。
当我像这样将文件名作为字符串传递时:
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"
来避免。