Go教程技术文章
-
filepath.Rel 负责按当前系统规则计算相对路径,filepath.ToSlash 负责把成功结果转换成统一的 / 表示。本文用原创示例说明错误处理、输出格式和 .. 边界。381 收藏 -
使用 filepath.Rel 生成归档文件名时,应先确定 basePath 和 targPath,再处理返回错误与 ../ 结果,最后用 filepath.ToSlash 统一条目分隔符。本文给出可复用的小函数和跨平台边界。138 收藏 -
Go encoding/csv.Reader 会自动忽略真正的空行,但只含空格的记录仍可能被读出。本文用一个可调整的空记录判断函数区分空行、空字段和有效记录,并处理 EOF、解析错误与可变字段数。303 收藏 -
Go 的 io/fs.ValidPath 没有 nil 参数,所谓空值通常是空字符串。本文梳理空字符串、.、首尾斜杠、. 与 .. 元素、非法 UTF-8 的判断结果,并用小函数把语法错误和文件不存在分开处理。459 收藏 -
通过一个原始名称检查 CLI,说明怎样组合 fs.ValidPath、应用命名政策和 fs.Stat,区分格式、不存在及权限问题,并解释路径清理与目录访问的边界。147 收藏 -
在 Go 的 io/fs 接口前判断路径是否合规,重点说明 ValidPath 对 slash 分隔、未根路径、点段、空元素和根目录 . 的边界,并给出可直接复用的入口函数。187 收藏 -
io/fs.ValidPath 只接收 string,不能直接复用调用方的 []byte。动态路径应复用 []byte scratch,完成一次受控的 string 转换后再校验,并注意临时字符串的生命周期、容量和并发隔离。419 收藏 -
Go 的 io/fs.ValidPath 只接受不带根的斜杠路径。本文用 os.DirFS 建立受限根目录,先校验文件名再用 fs.ReadFile 读取,并说明 ..、符号链接、权限和运行身份的边界。467 收藏 -
用一个小型 docpeek 工具说明如何把本地目录包装成 fs.FS,组合 fs.ReadDir 与 fs.ReadFile,并处理 fs.ValidPath、相对路径和符号链接边界。114 收藏 -
os.DirFS 的根目录参数不能是空字符串,文件读取还要区分非法路径、文件不存在和权限错误。本文用 io/fs 的路径约束、errors.Is 和资源关闭写出清晰的异常分支,并提醒 DirFS 不等于符号链接隔离。148 收藏 -
os.DirFS 不接收字节缓冲区。本文用完整 Go 文件摘要示例说明如何在打开文件后复用工作区,并解释 CopyBuffer 快速路径、切片长度、串行所有权和目录访问边界。426 收藏 -
使用 Go os.DirFS 读取目录时,先用 fs.ValidPath 判断输入是否满足 io/fs 名称规则,再根据目录是否可信选择 os.DirFS 或 Go 1.24+ 的 os.OpenRoot。本文区分语法边界与符号链接安全边界,并给出选择表和可运行示例。286 收藏 -
os.DirFS 可以把固定目录暴露为 io/fs,但它不是 chroot 安全边界。本文从最小读取写法、fs.ValidPath 输入约束和符号链接风险讲起,并给出 Go 1.24+ 使用 os.OpenRoot 的安全替代方案。204 收藏 -
Go 的 http.Request.UserAgent 会读取请求中的 User-Agent 字段。本文说明空值处理、日志记录和轻量归类,并划清它与认证、授权和设备识别的边界。345 收藏 -
比较Go database/sql结果集的自动关闭、defer和显式关闭,区分QueryContext、Scan、Err、Close的错误入口,用完整读取函数处理早退、迭代失败和关闭错误。195 收藏