Maison  >  Article  >  développement back-end  >  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
PHPzavant
2024-02-10 16:00:14908parcourir

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer