利用Go語言遍歷目錄下所有文件的示例代碼
更新時間:2025年07月23日 08:33:07 作者:程序員愛釣魚
這篇文章主要介紹了如何使用 Go 語言遍歷指定目錄,遞歸地列出該目錄及其所有子目錄下的所有文件路徑,并有詳細的代碼示例供大家參考,需要的朋友可以參考下
案例目標(biāo)
使用 Go 語言遍歷指定目錄,遞歸地列出該目錄及其所有子目錄下的所有文件路徑。
應(yīng)用場景
- • 文件備份、文件管理工具開發(fā)
- • 查找某種類型的文件(如
.jpg,.txt) - • 批量處理目錄下文件,如格式轉(zhuǎn)換或分析
涉及知識點
- • 使用
filepath.WalkDir()遍歷目錄結(jié)構(gòu) - • 判斷文件類型(文件或文件夾)
- • 獲取文件相對/絕對路徑
- • 錯誤處理
示例代碼:遞歸遍歷目錄下所有文件
package main
import (
"fmt"
"io/fs"
"path/filepath"
)
func main() {
root := "./testfiles" // 要遍歷的目錄
err := filepath.WalkDir(root, func(path string, d fs.DirEntry, err error) error {
if err != nil {
fmt.Println("訪問出錯:", err)
return err
}
// 判斷是否為文件
if !d.IsDir() {
fmt.Println("文件:", path)
}
return nil
})
if err != nil {
fmt.Println("遍歷失敗:", err)
}
}
示例目錄結(jié)構(gòu)
testfiles/ ├── a.txt ├── b.jpg ├── docs/ │ ├── c.pdf │ └── d.docx
執(zhí)行輸出示例
文件: testfiles/a.txt 文件: testfiles/b.jpg 文件: testfiles/docs/c.pdf 文件: testfiles/docs/d.docx
技術(shù)說明
| 函數(shù) | 作用 |
|---|---|
| filepath.WalkDir() | 遍歷目錄樹 |
| fs.DirEntry | 提供文件信息結(jié)構(gòu) |
| d.IsDir() | 判斷是否是文件夾 |
| path | 每個文件或文件夾的完整路徑 |
拓展示例:只打印特定類型文件
if !d.IsDir() && filepath.Ext(path) == ".txt" {
fmt.Println("TXT 文件:", path)
}
小結(jié)
本案例幫助你學(xué)會了如何在 Go 中遞歸遍歷整個文件目錄結(jié)構(gòu)。filepath.WalkDir 是處理目錄樹的利器,適用于各種需要深入訪問文件系統(tǒng)的實際開發(fā)任務(wù)。
以上就是利用Go語言遍歷目錄下所有文件的示例代碼的詳細內(nèi)容,更多關(guān)于Go遍歷目錄下所有文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go Uber靜態(tài)分析工具NilAway使用初體驗
這篇文章主要介紹了Go Uber靜態(tài)分析工具NilAway使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
go并發(fā)數(shù)據(jù)一致性事務(wù)的保障面試應(yīng)答
這篇文章主要為大家介紹了go并發(fā)數(shù)據(jù)一致性事務(wù)的保障面試應(yīng)答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12

