2017-08-29 185 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包裝:

​​
相關問題