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.
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/amd64
go版本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!