Heim > Backend-Entwicklung > Golang > filepath.Abs​() stellt in den Ergebnissen keine Unterverzeichnisse bereit

filepath.Abs​() stellt in den Ergebnissen keine Unterverzeichnisse bereit

PHPz
Freigeben: 2024-02-10 16:00:14
nach vorne
949 Leute haben es durchsucht

filepath.Abs​​() 在结果中不提供子目录

php-Editor Yuzai hat eine nützliche Funktion im Zusammenhang mit Dateipfaden eingeführt: filepath.Abs(). Diese Funktion schließt bei der Rückgabe von Ergebnissen keine Unterverzeichnisse ein. Diese Funktion ist sehr nützlich für Entwickler, die den absoluten Pfad einer Datei ermitteln müssen, aber keine Unterverzeichnisinformationen benötigen. Mithilfe der Funktion filepath.Abs() können Entwickler problemlos den absoluten Pfad einer Datei ermitteln, ohne sich Gedanken über Störungen durch Unterverzeichnisinformationen machen zu müssen. Die Einfachheit und Praktikabilität dieser Funktion machen sie zu einem der bevorzugten Tools für PHP-Entwickler.

Frageninhalt

Ich habe ein Verzeichnis wie dieses:

myproject/
├─ data/
│  ├─ test.csv
├─ go.mod
├─ main.go
Nach dem Login kopieren
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)
}
Nach dem Login kopieren

Aber, filepath.Abs​​(fileInfo.Name()) 给我 C:myprojecttest.csv。而不是我想要的 C:myprojectdatatest.csv

IIUC, fileInfo.Name() 应该给我与输入 os.Open() 相同的路径,那么为什么 filepath.Abs​​() 不能识别文件所在的目录呢? filepath.Dir(fileInfo.Name()) 也给了我 . ...我希望是 C:myprojectdata.

Ich führe meine Go-Datei im myproject-Verzeichnis aus.

go Version 1.19.3 Windows/amd64go版本1.19.3 windows/amd64

解决方法

fileInfo.Name() 仅返回文件的基本名称,如文档所述 a>,没有路径信息。因此,您仅将原始文件名传递给 filepath.Abs​​Solution p>fileInfo.Name() gibt nur den Basisnamen der Datei zurück, Wie in der Dokumentation angegeben a> gibt es keine Pfadinformationen. Sie übergeben also einfach den ursprünglichen Dateinamen an filepath.Abs. Die Funktion macht also 🎜genau das, was in der Dokumentation steht🎜: 🎜

Das obige ist der detaillierte Inhalt vonfilepath.Abs​() stellt in den Ergebnissen keine Unterverzeichnisse bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage