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

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

PHPz
PHPznach vorne
2024-02-10 16:00:14938Durchsuche

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
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)
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen