新闻中心

Golang如何用ioutil ReadDir列出目录文件_Golang ReadDir文件列表与操作实践

2025-11-16
浏览次数:
返回列表
ioutil.ReadDir用于读取目录内容,返回[]os.FileInfo,可遍历获取文件名、大小、类型等信息,支持按扩展名过滤;Go 1.16起推荐使用os.ReadDir,返回fs.DirEntry更高效。

golang如何用ioutil readdir列出目录文件_golang readdir文件列表与操作实践

在Go语言中,ioutil.ReadDir 是一个便捷的方法,用于读取指定目录下的文件和子目录信息。虽然从Go 1.16起官方推荐使用 os.ReadDir 替代 ioutil.ReadDir,但了解其用法仍有助于维护旧项目。下面介绍如何使用 ioutil.ReadDir 获取目录内容,并进行常见操作。

使用 ioutil.ReadDir 列出目录文件

注意:ioutil.ReadDir 在 Go 1.16 后已被弃用,建议新项目使用 os.ReadDir。但以下示例仍适用于老版本。

要列出某个目录下的所有条目,可以这样写:

package main

import (
    "fmt"
    "io/ioutil"
    "log"
)

func main() {
    dir := "./" // 指定目录路径
    files, err := ioutil.ReadDir(dir)
    if err != nil {
        log.Fatal(err)
    }

    for _, file := range files {
        fmt.Println(file.Name())
    }
}

这段代码会打印当前目录下所有文件和文件夹的名称。

获取文件详细信息并分类

file 对象是 os.FileInfo 类型,包含丰富的元数据。我们可以判断它是文件还是目录,并进一步筛选:

  • file.IsDir() 返回 true 表示是目录
  • file.Mode().IsRegular() 可判断是否为普通文件
  • file.Size() 获取文件大小(字节)
  • file.ModTime() 获取最后修改时间

示例:分别列出文件和目录

Zyro AI Background Remover Zyro AI Background Remover

Zyro推出的AI图片背景移除工具

Zyro AI Background Remover 145 查看详情 Zyro AI Background Remover
for _, file := range files {
    if file.IsDir() {
        fmt.Printf("[DIR]  %s\n", file.Name())
    } else {
        fmt.Printf("[FILE] %s (%d bytes)\n", file.Name(), file.Size())
    }
}

过滤特定类型文件(如 .go 文件)

结合 path/filepath 中的 Ext 函数,可轻松实现按扩展名过滤:

import "path/filepath"

// ...

for _, file := range files {
    if !file.IsDir() {
        ext := filepath.Ext(file.Name())
        if ext == ".go" {
            fmt.Println("Go文件:", file.Name())
        }
    }
}

你也可以用 strings.HasSuffix 进行前缀或后缀匹配,比如查找以 "config" 开头的文件。

替代方案:使用 os.ReadDir(推荐)

Go 1.16+ 推荐使用 os.ReadDir,它返回更轻量的 fs.DirEntry,性能更好:

package main

import (
    "fmt"
    "os"
)

func main() {
    entries, err := os.ReadDir("./")
    if err != nil {
        panic(err)
    }

    for _, entry := range entries {
        info, _ := entry.Info()
        if entry.IsDir() {
            fmt.Printf("[DIR]  %s\n", entry.Name())
        } else {
            fmt.Printf("[FILE] %s (%d bytes)\n", entry.Name(), info.Size())
        }
    }
}

这种方式更现代、高效,且与模块化文件系统兼容性更好。

基本上就这些。ioutil.ReadDir 虽然简单易用,但在新项目中应优先选择 os.ReadDir。掌握目录遍历和文件属性提取,是文件处理的基础能力。不复杂但容易忽略的是错误处理和跨平台路径兼容问题,建议配合 filepath.Clean 或 filepath.Join 使用路径拼接。

以上就是Golang如何用ioutil ReadDir列出目录文件_Golang ReadDir文件列表与操作实践的详细内容,更多请关注其它相关文章!


# 是一个  # 网站优化总结  # 太仓企业网站建设服务  # 完美日记网站建设评价  # 湛江市主营网站建设企业  # 昭通营销推广招商平台  # 东营网站建设怎么建设的  # 鑫牛元网站建设  # 水乡集团网站建设  # 推荐泉州seo信息  # 随州seo厂家  # 可以用  # 你也  # go  # 的是  # 目录下  # 扩展名  # 遍历  # 如何用  # 文件列表  # 推荐使用  # ai  # 字节  # go语言  # golang 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除  Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  深入理解J*a合成构造器:何时以及为何阻止其生成  三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】  如何在Promise链中有效终止错误处理后的执行  mc.js官网登录入口 mc.js官方登录入口最新版  Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】  Python自定义类排序:解决lambda键值访问TypeError的实践指南  GemBox Document HTML转PDF垂直文本渲染问题及解决方案  Pygame教程:解决用户输入与游戏状态更新不同步问题  押井守高度称赞《辐射4》:玩了八年都停不下来!  照顾宝贝2小游戏免费秒玩入口  Sublime怎么配置Nim语言环境_Sublime Nim代码高亮与补全  css滚动动画效果怎么实现_使用Animate.css滚动触发动画类  ArchiveofOurOwn小说阅读-ArchiveofOurOwn同人作品访问链接  理解Python模块与全局变量的作用域管理  小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口  一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】  Vue.js 图片显示异常排查:理解应用挂载范围与DOM ID唯一性  yandex入口引擎手机版 yandex安卓版下载入口  uc浏览器网页版入口 uc浏览器网页版最新网址  c++如何实现单例设计模式_c++线程安全的单例模式写法  微信语音通话掉线如何解决 微信语音通话稳定优化方法  怎么在mac上运行html代码_mac运行html代码方法【指南】  Python异步编程实践:使用Binance API构建实时交易数据流  使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧  C++如何解决segmentation fault_C++段错误调试与原因分析  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠  蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台  AO3官网镜像链接 Archive of Our Own同人文在线浏览  HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画  Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】  c++如何使用Meson构建系统_c++比CMake更快的构建工具  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  网易大神账号申诉需要多久_网易大神账号申诉流程说明  Promise错误处理:在catch后终止链式then执行的策略  机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  微信网页版官方入口教程 微信网页版网页版快速登录步骤  QQ网页版官方账号入口 QQ网页版网页版登录指南  快手网页版在线登录 快手网页版官网入口快速访问  qq音乐在线播放入口_qq音乐电脑版登录链接  解决移动端滚动问题的overflow属性应用指南  CSS子选择器:如何区分并样式化嵌套列表的子层级 

搜索