Gin

Go 语言文件处理

文件处理是 Go 语言中最常见的操作之一——读取配置、写入日志、数据持久化都离不开它。Go 的标准库提供了一套简洁而强大的文件 I/O 接口,覆盖从单次读写到流式处理的各种场景

Go 文件和文件夹工具类:一个开箱即用的 fileutil 包v2

基于 Go 1.25 的新特性,我将之前的工具包进行了全面重构和升级。 新版主要引入了 os.Root 保障文件操作安全,使用迭代器和泛型提升代码的现代感与复用性,并整合了 testing/fstest 优化测试体验。 一、新版 fileutil 包代码 二、使用示例 三、关键优化点详解 希望这个融合了 Go 新特性的工具包能让你的开发工作更高效、更安全。

 Go 开发经验总结:从入门到写出生产级代码

用 Go 语言写后端已经好多年了。从最初被 if err != nil 烦到不行,到现在能熟练应对各种并发场景和代码组织,踩过不少坑,也有一些心得。这篇文章把这些经验整理下来,希望能帮到正在用 Go 的朋友。每个主题都会配上可直接运行的代码示例,你可以边看边跑。 1. 错误处理:不止是 if err != nil 很多刚接触 Go 的人都会被满屏的 if err != nil 吓到。但真正的问题是,很多人只检查了错误,却没做好错误包装和分类。 1.1 用 %w 包装错误,保留上下文 Go 1.13…

Go 文件和文件夹工具类:一个开箱即用的 fileutil 包

在日常开发中,文件与目录操作是高频需求。虽然 Go 标准库已经提供了 os、path/filepath 等基础能力,但直接使用仍需处理大量边界条件。本文将封装一个实用的 fileutil 工具包,涵盖常用操作:路径存在判断、目录创建、文件复制、目录复制、移动、删除、遍历、大小统计等。每个方法都有详细的注释和错误处理,可直接集成到项目中。 完整代码可在文末获取,或直接复制使用。 功能概览 核心代码:fileutil 包实现 使用示例 要点说明 函数 注意事项 CopyFile 覆盖已存在的目标文件;保留源文件权限 MoveFile 跨文件系统自动降级为复制+删除 CopyDir 递归复制,目标目录存在时会合并内容 SafeWrite 原子写入,先写临时文件再 rename,防止写一半时进程崩溃导致数据损坏 ListFiles 支持按扩展名过滤,返回绝对路径 EnsureDir 已存在但不是目录时报错,避免误用 这个工具包覆盖了日常开发中 90%…