Golang中如何获取Windows完整路径
Golang中如何获取Windows完整路径 如何在Golang中正确访问zip文件?
r, err := zip.OpenReader("C:\Users\rob66\Downloads\365817059X.zip")
提前感谢。
3 回复
你有两种选择,要么通过双写反斜杠来转义它们,要么使用统一的路径分隔符(即斜杠),从 Windows 7 开始,Windows 系统已经能够识别后者。
在Golang中获取Windows完整路径并正确访问zip文件时,需要注意Windows路径分隔符的转义问题。你提供的代码中使用了\作为路径分隔符,但在Go字符串中\是转义字符,需要正确转义。
以下是修正后的代码示例:
package main
import (
"archive/zip"
"fmt"
"log"
)
func main() {
// 方法1: 使用双反斜杠转义
r, err := zip.OpenReader("C:\\Users\\rob66\\Downloads\\365817059X.zip")
if err != nil {
log.Fatal(err)
}
defer r.Close()
// 遍历zip文件中的文件
for _, f := range r.File {
fmt.Printf("文件名: %s\n", f.Name)
}
// 方法2: 使用原始字符串字面量(推荐)
r2, err := zip.OpenReader(`C:\Users\rob66\Downloads\365817059X.zip`)
if err != nil {
log.Fatal(err)
}
defer r2.Close()
}
或者,你也可以使用filepath包来构建跨平台兼容的路径:
package main
import (
"archive/zip"
"path/filepath"
"log"
)
func main() {
// 使用filepath构建路径
zipPath := filepath.Join("C:", "Users", "rob66", "Downloads", "365817059X.zip")
r, err := zip.OpenReader(zipPath)
if err != nil {
log.Fatal(err)
}
defer r.Close()
// 处理zip文件内容
for _, f := range r.File {
log.Printf("找到文件: %s", f.Name)
}
}
关键点:
- 在普通字符串中,Windows路径需要用
\\来表示单个\ - 使用反引号
`创建原始字符串字面量可以避免转义问题 filepath.Join()方法可以创建跨平台兼容的路径
这些方法都能正确访问Windows系统中的zip文件。

