我目前运行的是 64 位 Windows 8,我正在尝试创建一个日志文件以与 Web 服务器一起使用。有问题的代码是:func LogWebPath(requestedURL string, accessedURL string, logFile string) error {file, _ := os.Open(logFile)_, err = io.WriteString(file, requestedURL + ":" + accessedURL)if(err != nil) { fmt.Println(err) return err}file.Close()return errors.New("nil")}每当 io.WriteString 被调用时,返回的错误是 write log/visit.log: Access is denied.我的系统上安装了 Go,我正在使用它go run x.go来运行我的 Go 源代码。
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
我相信您正在以只读模式打开文件。您可以尝试使用 os.OpenFile 代替 os.Open,并使用适当的标志,如如何在 golang 中将文本附加到文件中所示?并追加到围棋文件
慕妹3146593
TA贡献1820条经验 获得超9个赞
从文档中,您有一个只读文件:
Open打开命名文件以供阅读...
您需要使用os.OpenFile适当的标志
一些例子
写文件的常用方法(由 使用ioutil.WriteFile):
f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
要创建或附加到文件:
f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_APPEND, perm)
仅附加到现有文件:
f, err := os.OpenFile(filename, os.O_WRONLY|os.O_APPEND, perm)
- 2 回答
- 0 关注
- 403 浏览
添加回答
举报
0/150
提交
取消
