2014-01-15 122 views
0

可以說我有以下目錄結構:如何遍歷一個目錄,而不進入子目錄

RootDir 
---SubDir1 
------SubSubDir 
---------file1 
---------file2 
---SubDir2 
---SubDir3 
---file3 
---file4 

我只想在RootDir(SubDir1, Subdir2, Subdir3, file3, file 4)的內容進行迭代,並檢查它是否是一個目錄或文件,沒有進入子目錄,就像filepath.Walk那樣。

Go庫中有沒有辦法做到這一點?

編輯:

files, err := os.Open("c:\\Documents") 
file, err := files.Readdir(0) 

if err != nil { 
    fmt.Printf("Error: %s\n", err) 
} 

for f := range file { 
    fmt.Println(f.IsDir()) 
} 

所以在這裏我想重複低谷FileInfo的,這是一個切片,並檢查每一個文件,如果它是一個目錄,但我總是得到這個錯誤:

f.IsDir undefined (type int has no field or method IsDir) 

回答

2

您可以通過os.Open和返回*os.File打開它讀取目錄中有一個Readdir()方法,這給os.FileInfo S爲直接文件夾的內容,並且這些FileInfoIsDir()方法。

+0

你知道爲什麼對我來說,FileInfo被視爲一個int? (類型int沒有字段或方法IsDir) – Kobe

+0

很難說沒有看到代碼有什麼問題.... – Volker

+0

我已經更新了相關代碼的問題。 – Kobe