2017-08-29 123 views
0

我正在使用Go来遍历目录中的所有文件。这是我正在做它:如何在Go中的目录中获取所有文件的完整路径?

package main 

import (
    "fmt" 
    "io/ioutil" 
) 

func main() { 
    printFiles(".") 
} 

func printFiles(dir string) { 
    fileInfos, err := ioutil.ReadDir(dir) 
    if err != nil { 
     fmt.Println("Error in accessing directory:", err) 
    } 

    for _, file := range fileInfos { 
     fmt.Printf("%T: %+v\n", file, file) 
    } 
} 

当我运行此代码,这是输出I得到:

*os.fileStat: &{name:main.go sys:{FileAttributes:32 CreationTime:{LowDateTime:2993982878 HighDateTime:30613689} LastAccessTime:{LowDateTime:2993982878 HighDateTime:30613689} LastWriteTime:{LowDateTime:4004986069 HighDateTime:30613714} FileSizeHigh:0 FileSizeLow:320} pipe:false Mutex:{state:0 sema:0} path:C:\Users\Prakhar.Mishra\go\src\mistdatafilter\main.go vol:0 idxhi:0 idxlo:0} 

我可以看到一个名为路径属性,但我不能访问它(由于小的情况下,我想呢?)。任何人都可以请告诉我如何获得给定文件夹中所有文件的完整文件路径?

回答

1

如果您想查看完整路径,则应该从完整路径开始。 .是一个相对路径。

您可以os.Getwd

path, err := os.Getwd() 
// handle err 
printFiles(path) 

其余部分只是附加的文件名的目录路径获得工作路径。您应该使用path/filepath包装:

​​
相关问题