簡體   English   中英

嘗試使用io.WriteString寫入Golang“訪問被拒絕”錯誤

[英]Golang “Access is denied” error on trying to write to file with io.WriteString

我當前正在運行Windows 8 64位,並且正在嘗試創建用於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源代碼。

我相信您是以只讀模式打開文件的。 您可以嘗試使用帶有適當標志的os.OpenFile代替os.Open,如如何在golang中將文本追加到文件中所示? 並附加到Go中的文件

在文檔中,您有一個只讀文件:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM