欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Go語言遍歷目錄下所有文件的示例代碼

 更新時(shí)間:2025年07月23日 08:33:07   作者:程序員愛釣魚  
這篇文章主要介紹了如何使用 Go 語言遍歷指定目錄,遞歸地列出該目錄及其所有子目錄下的所有文件路徑,并有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下

案例目標(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極簡入門教程(二):方法和接口

    Golang極簡入門教程(二):方法和接口

    這篇文章主要介紹了Golang極簡入門教程(二):方法和接口,本文同時(shí)講解了錯(cuò)誤、匿名域等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • golang去除多余的空格與換行符示例代碼

    golang去除多余的空格與換行符示例代碼

    Golang是一種強(qiáng)大的編程語言,提供了豐富的字符串處理功能,這篇文章主要給大家介紹了關(guān)于golang去除多余的空格與換行符的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • 手把手帶你走進(jìn)Go語言之常量解析

    手把手帶你走進(jìn)Go語言之常量解析

    這篇文章主要介紹了Go語言之常量解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Golang并發(fā)編程中Context包的使用與并發(fā)控制

    Golang并發(fā)編程中Context包的使用與并發(fā)控制

    Golang的context包提供了在并發(fā)編程中傳遞取消信號(hào)、超時(shí)控制和元數(shù)據(jù)的功能,本文就來介紹一下Golang并發(fā)編程中Context包的使用與并發(fā)控制,感興趣的可以了解一下
    2024-11-11
  • go實(shí)現(xiàn)冒泡排序算法

    go實(shí)現(xiàn)冒泡排序算法

    冒泡排序算法是數(shù)據(jù)結(jié)構(gòu)中常用的一種算法,本文就介紹了go實(shí)現(xiàn)冒泡排序算法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • golang判斷字符串是是否包含另一字符串的示例代碼

    golang判斷字符串是是否包含另一字符串的示例代碼

    在Go語言中,可以使用strings.Contains()函數(shù)來判斷一個(gè)字符串是否包含另一個(gè)字符串,該函數(shù)接受兩個(gè)參數(shù):要搜索的字符串和要查找的子字符串,如果子字符串存在于要搜索的字符串中,則返回true,否則返回false,下面通過示例詳細(xì)介紹,感興趣的朋友一起看看吧
    2023-09-09
  • Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié)

    Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié)

    這篇文章主要介紹了Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié),本文直接給出操作代碼,同時(shí)對代碼加上了詳細(xì)注釋,需要的朋友可以參考下
    2014-11-11
  • Golang中map縮容的實(shí)現(xiàn)

    Golang中map縮容的實(shí)現(xiàn)

    本文主要介紹了Go語言中map的擴(kuò)縮容機(jī)制,包括grow和hashGrow方法的處理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • GO語言函數(shù)(func)的聲明與使用詳解

    GO語言函數(shù)(func)的聲明與使用詳解

    這篇文章主要介紹了GO函數(shù)(func)的聲明與使用,包括了GO語言函數(shù)聲明與使用,GO語言遞歸函數(shù),GO語言內(nèi)置函數(shù),GO語言函數(shù)defer應(yīng)用,GO語言函數(shù)可變長度參數(shù)需要的朋友可以參考下
    2022-12-12
  • Go語言調(diào)用SiliconFlow實(shí)現(xiàn)文本轉(zhuǎn)換為MP3格式

    Go語言調(diào)用SiliconFlow實(shí)現(xiàn)文本轉(zhuǎn)換為MP3格式

    這篇文章主要為大家詳細(xì)介紹了Go語言如何調(diào)用?SiliconFlow?語音生成?API?的腳本,用于將文本轉(zhuǎn)換為?MP3?格式的語音文件,感興趣的小伙伴可以了解下
    2025-02-02

最新評(píng)論