Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 写入网络映射驱动器时发生Fprintf错误_Go_Printf - Fatal编程技术网

Go 写入网络映射驱动器时发生Fprintf错误

Go 写入网络映射驱动器时发生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

我有下面一段代码,它在本地驱动器上创建一个输出文件,并且需要在网络映射驱动器上执行同样的操作,我们称之为[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|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出现问题!