【go从零单排】File Paths文件路径

news/2024/11/16 17:12:16/

挪威特罗姆瑟夜景

🌈Don’t worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。

📗概念

在 Go 中,处理文件路径通常使用 path/filepath 包。这个包提供了一系列的函数,用于操作和处理文件路径,特别是跨平台的路径操作。

💻代码

package mainimport (//path/filepath:提供了处理文件路径的函数,适用于不同操作系统。//strings:提供字符串处理功能。"fmt""path/filepath""strings"
)func main() {//使用 filepath.Join 将多个路径部分连接成一个完整路径。输出结果会根据操作系统的路径分隔符(如 / 或 \)自动调整。p := filepath.Join("dir1", "dir2", "filename")fmt.Println("p:", p)//处理多余的分隔符和相对路径。filepath.Join 会自动规范化路径。fmt.Println(filepath.Join("dir1//", "filename"))fmt.Println(filepath.Join("dir1/../dir1", "filename"))//filepath.Dir(p) 返回路径 p 的目录部分。fmt.Println("Dir(p):", filepath.Dir(p))//filepath.Base(p) 返回路径 p 的文件名部分。fmt.Println("Base(p):", filepath.Base(p))//filepath.IsAbs 检查路径是否是绝对路径。第一个示例返回 false(因为是相对路径),第二个示例返回 true(因为是绝对路径)。fmt.Println(filepath.IsAbs("dir/file"))fmt.Println(filepath.IsAbs("/dir/file"))filename := "config.json"//filepath.Ext(filename) 返回文件名的扩展名(.json)。ext := filepath.Ext(filename)fmt.Println(ext)//使用 strings.TrimSuffix 去除文件名的扩展名,输出结果为 config。fmt.Println(strings.TrimSuffix(filename, ext))//filepath.Rel 计算从第一个路径到第二个路径的相对路径。//返回 t/file,表示从 a/b 到 a/b/t/file 的相对路径。rel, err := filepath.Rel("a/b", "a/b/t/file")if err != nil {panic(err)}fmt.Println(rel)//计算从 a/b 到 a/c/t/file 的相对路径,返回的结果是 ../c/t/file,表示需要回到 a 目录,然后进入 c/t/file。rel, err = filepath.Rel("a/b", "a/c/t/file")if err != nil {panic(err)}fmt.Println(rel)
}

🔍理解

  • filepath.Join:将多个路径部分连接成一个完整路径。
  • filepath.Dir:返回路径的目录部分。
  • filepath.Base:返回路径的最后一部分(文件名)。
  • filepath.IsAbs:检查路径是否为绝对路径。
  • filepath.Ext:返回文件名的扩展名。
  • filepath.Rel:计算从一个路径到另一个路径的相对路径。

💡 Tips小知识点

跨平台:

  • path/filepath 包会根据操作系统自动选择适当的路径分隔符(如 Windows 的 \ 和 Unix 的 /),因此可以编写跨平台的代码。
  • 相对路径:在处理相对路径时,确保理解当前工作目录的位置,以避免路径解析错误。

💪无人扶我青云志,我自踏雪至山巅。
在这里插入图片描述


http://www.ppmy.cn/news/1547497.html

相关文章

达梦数据库迁移j脚本

国产环境使用达梦数据库的越来越多&#xff0c;除了使用管理工具&#xff0c;还是可以使用脚本。 下面简单记录下&#xff0c;我在迁移中遇到的问题&#xff1a; 备份脚本 使用此脚本可以一次备份一个数据 backup_one_db.sh #!/bin/bashexport DB$1 export PASS<your_p…

杰控通过 OPCproxy 获取数据发送到服务器

把数据从 杰控 取出来发到服务器 前提你在杰控中已经有变量了&#xff08;wincc 也适用&#xff09; 打开你的opcproxy 软件包 opcvarFile 添加变量 写文件就写到 了 opcproxy.ini中 这个文件里就是会读取到的数据 然后 opcproxy.exe发送到桌面快捷方式再考回来 &#…

【Qt】Qt在窗口中加载Web界面的方法汇总

1、Qt WebEngine 1)Qt版本:Qt5.4以上; 2)平台要求(https://doc.qt.io/archives/qt-5.9/qtwebengine-platform-notes.html): 例如:Windows下只能使用 MSVC 编译器,不支持MinGW编译器,会报错(: error: Unknown module(s) in QT: webenginewidgets) 并且不能用在Qt编…

SQL 审核在 CloudQuery 的四大场景应用

数据库作为数据的核心载体&#xff0c;其安全性和稳定性对业务的影响至关重要。而在我们日常业务中&#xff0c;SQL 编写不当是引起数据库故障的一个重要原因&#xff0c;轻则影响数据库性能&#xff0c;重则可能直接导致「雪崩」。因此&#xff0c;SQL 审核作为 SQL 代码投入生…

Kafka参数了解

Kafka配置参数完整说明 1. 基础配置 参数名说明推荐值参考值broker.idbroker的唯一标识符每个节点唯一的整数1delete.topic.enable是否允许删除topictruetruelistenersbroker监听地址SASL_PLAINTEXT://host:9092SASL_PLAINTEXT://172.24.77.15:9092advertised.listeners对外发…

如何设置MySQL 数据库的默认字符集和默认排序规则

在 MySQL 中&#xff0c;设置数据库的默认字符集和默认排序规则可以通过以下步骤来实现。你可以在创建数据库时指定这些设置&#xff0c;或者使用 ALTER 命令修改现有数据库的设置。 1. 创建数据库时设置字符集和排序规则 在创建新的数据库时&#xff0c;你可以直接在 CREATE…

Apache Doris 2.1.7 版本正式发布

亲爱的社区小伙伴们&#xff0c;Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。2.1.7 版本持续升级改进&#xff0c;同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。 立…

蓝桥杯c++算法学习【3】之思维与贪心(重复字符串、翻硬币、乘积最大、皮亚诺曲线距离【难】:::非常典型的必刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01; 关注博主&#xff0c;更多蓝桥杯nice题目静待更新:) 思维与贪心 一、重复字符串 【问题描述】 如果一个字符串S恰好可以由某个字符串重复K次得到&#xff0c;我们就称S是K次重复字 符串…