Go 写入网络映射驱动器时发生Fprintf错误
我有下面一段代码,它在本地驱动器上创建一个输出文件,并且需要在网络映射驱动器上执行同样的操作,我们称之为[H:]。 作为参数[1]从命令行输入的文件名(完整路径名) 我正在使用Windows 10/Server 2016Go 写入网络映射驱动器时发生Fprintf错误,go,printf,Go,Printf,我有下面一段代码,它在本地驱动器上创建一个输出文件,并且需要在网络映射驱动器上执行同样的操作,我们称之为[H:]。 作为参数[1]从命令行输入的文件名(完整路径名) 我正在使用Windows 10/Server 2016 // The following will create and append to the file when required. sourcefile, errf := os.OpenFile(os.Args[1], s.O_CREATE|os.O_APPEND|o
// The following will create and append to the file when required.
sourcefile, errf := os.OpenFile(os.Args[1], s.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
if erro != nil {
panic(erro)
}
defer outfile.Close()
我使用以下函数将映射写入该文件
func map2Linpro(inp map[string][]string, outfile io.Writer) {
for k, v := range inp {
_, err := fmt.Fprintf(outfile, "%s %s=%s %s\n", v[0], k, v[1], v[2])
if err != nil {
fmt.Println("Error Writing to File: ", err)
}
}
}
如果输出文件位于本地驱动器上,则一切正常,但使用带有映射驱动器号的完整路径时,我收到以下错误:
Error: write h://00_sc//dest01.txt: The parameter is incorrect.
我找了很多原因,但都找不到。
如果有人帮忙,我将不胜感激
下面是我在OpenFile之后添加了Panic(erro)后得到的错误。
这证明错误源是fmt.Fprintf
Error Writing to File: write H:/00_sc/dest01.txt: The parameter is incorrect.
谢谢大家
outfile, _ := os.OpenFile(os.Args[2], os.O_CREATE|os.O_APPEND, 0666)
应该读
outfile, err := os.OpenFile(os.Args[2], os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(err)
}
重写这些行,产生的错误消息应该会给出原因的线索
应该读
outfile, err := os.OpenFile(os.Args[2], os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(err)
}
重写这些行,产生的错误消息应给出原因的线索路径应为
h:\00\u sc\dest01.txt
,在解释文字中如下所示:“h:\\00\u sc\\dest01.txt”
。如果使用正斜杠,则不能复制:h:/00_sc/dest01.txt
(这可能在Windows上工作,也可能不工作!为什么要忽略OpenFile
中的错误?请不要这样做。否则@icza会这样说。还要注意,Go支持“raw”包含在反勾号中的字符串文字。您肯定需要在运行中阅读一些基本的介绍性材料。@icza感谢您的回复,是的,我尝试了\和/两种方法,并导致了相同的错误。@kostix感谢您的评论,我忽略了OpenFile中的错误,因为这是一个草稿代码。我不明白您所说的介绍性材料是什么意思,如果你给他们发一个链接,我将不胜感激。这是一些文档,为了避免遗漏,路径应该是h:\00\u sc\dest01.txt
,它在解释文字中是这样的:“h:\\00\u sc\\dest01.txt”
。如果你使用正斜杠,它不能重复:h:/00\u sc/dest01.txt
(这可能在Windows上工作,也可能不工作!为什么要忽略来自OpenFile
的错误?请不要这样做。否则@icza会这么说。还要注意,Go支持“raw”包含在反勾号中的字符串文字。您肯定需要在运行中阅读一些基本的介绍性材料。@icza感谢您的回复,是的,我尝试了\和/两种方法,并导致了相同的错误。@kostix感谢您的评论,我忽略了OpenFile中的错误,因为这是一个草稿代码。我不明白您所说的介绍性材料是什么意思,如果你给他们发一个链接,我将不胜感激。这是一些文档,不要遗漏感谢回复,我添加了错误恐慌声明,但是收到的错误是相同的。我相信错误不是来自OpenFile,因为该文件是创建的,而是空的,这意味着在尝试写入该文件时Fprintf出现了问题!感谢回复,我有一个dded error panic语句,但是收到的错误是相同的。我相信错误不是来自创建文件时的OpenFile,而是空的,这意味着尝试写入文件时Fprintf出现问题!