我有如下目录:
myproject/
├─ data/
│ ├─ test.csv
├─ go.mod
├─ main.go
package main
import (
"fmt"
"log"
"os"
"path/filepath"
)
func main() {
fullPath := `C:\myproject\data\test.csv`
f, err := os.Open(fullPath)
if err != nil {
log.Fatal(err)
}
defer f.Close()
fileInfo, err := f.Stat()
if err != nil {
log.Fatal(err)
}
// get full file path
filePath, err := filepath.Abs(fileInfo.Name())
if err != nil {
log.Fatal(err)
}
fmt.Println(filePath)
}
然而,filepath.Abs(fileInfo.Name())
等于C:\myproject\test.csv
.而不是我想要的C:\myproject\data\test.csv
IIUC,fileInfo.Name()
应该会给我提供与输入到os.Open()
中的路径相同的路径,那么为什么filepath.Abs()
不能识别文件所在的目录?filepath.Dir(fileInfo.Name())
也会给我.
……我预计是C:\myproject\data\
岁.
我正在从myproject
目录内运行我的GO文件.
go version 1.19.3 windows/amd64
个