利用Go語言遍歷目錄下所有文件的示例代碼
案例目標(biāo)
使用 Go 語言遍歷指定目錄,遞歸地列出該目錄及其所有子目錄下的所有文件路徑。
應(yīng)用場景
- • 文件備份、文件管理工具開發(fā)
- • 查找某種類型的文件(如
.jpg
,.txt
) - • 批量處理目錄下文件,如格式轉(zhuǎn)換或分析
涉及知識(shí)點(diǎn)
- • 使用
filepath.WalkDir()
遍歷目錄結(jié)構(gòu) - • 判斷文件類型(文件或文件夾)
- • 獲取文件相對/絕對路徑
- • 錯(cuò)誤處理
示例代碼:遞歸遍歷目錄下所有文件
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("訪問出錯(cuò):", 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 | 每個(gè)文件或文件夾的完整路徑 |
拓展示例:只打印特定類型文件
if !d.IsDir() && filepath.Ext(path) == ".txt" { fmt.Println("TXT 文件:", path) }
小結(jié)
本案例幫助你學(xué)會(huì)了如何在 Go 中遞歸遍歷整個(gè)文件目錄結(jié)構(gòu)。filepath.WalkDir
是處理目錄樹的利器,適用于各種需要深入訪問文件系統(tǒng)的實(shí)際開發(fā)任務(wù)。
以上就是利用Go語言遍歷目錄下所有文件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Go遍歷目錄下所有文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Golang并發(fā)編程中Context包的使用與并發(fā)控制
Golang的context包提供了在并發(fā)編程中傳遞取消信號(hào)、超時(shí)控制和元數(shù)據(jù)的功能,本文就來介紹一下Golang并發(fā)編程中Context包的使用與并發(fā)控制,感興趣的可以了解一下2024-11-11Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié)
這篇文章主要介紹了Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié),本文直接給出操作代碼,同時(shí)對代碼加上了詳細(xì)注釋,需要的朋友可以參考下2014-11-11Go語言調(diào)用SiliconFlow實(shí)現(xiàn)文本轉(zhuǎn)換為MP3格式
這篇文章主要為大家詳細(xì)介紹了Go語言如何調(diào)用?SiliconFlow?語音生成?API?的腳本,用于將文本轉(zhuǎn)換為?MP3?格式的語音文件,感興趣的小伙伴可以了解下2025-02-02