Maison > développement back-end > Golang > filepath.Abs​() ne fournit pas de sous-répertoires dans les résultats

filepath.Abs​() ne fournit pas de sous-répertoires dans les résultats

PHPz
Libérer: 2024-02-10 16:00:14
avant
948 Les gens l'ont consulté

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

L'éditeur php Yuzai a introduit une fonction utile liée aux chemins de fichiers : filepath.Abs(). Cette fonction n'inclura pas de sous-répertoires lors du renvoi des résultats. Cette fonction est très utile pour les développeurs qui ont besoin d'obtenir le chemin absolu d'un fichier mais n'ont pas besoin d'informations sur les sous-répertoires. En utilisant la fonction filepath.Abs(), les développeurs peuvent facilement obtenir le chemin absolu d'un fichier sans se soucier des interférences des informations de sous-répertoire. La simplicité et la praticité de cette fonction en font l'un des outils préférés des développeurs PHP.

Contenu de la question

J'ai un répertoire comme celui-ci :

myproject/
├─ data/
│  ├─ test.csv
├─ go.mod
├─ main.go
Copier après la connexion
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)
}
Copier après la connexion

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

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

J'exécute mon fichier go dans le répertoire myproject.

go version 1.19.3 windows/amd64go版本1.19.3 windows/amd64

解决方法

fileInfo.Name() 仅返回文件的基本名称,如文档所述 a>,没有路径信息。因此,您仅将原始文件名传递给 filepath.Abs​​Solution p>fileInfo.Name() renvoie uniquement le nom de base du fichier, Comme l'indique la documentation a>, il n'y a aucune information de chemin. Il vous suffit donc de transmettre le nom du fichier d'origine à filepath.Abs. La fonction fait donc 🎜exactement ce que dit la documentation🎜 : 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal