【go从零单排】Directories、Temporary Files and Directories目录和临时目录、临时文件

🌈Don’t worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。
📗概念
在 Go 语言中,path/filepath 包提供了一组用于处理文件路径的函数,特别是与文件系统路径相关的操作。这个包是 Go 标准库的一部分,主要用于跨平台的路径操作,确保在不同操作系统上(如 Windows 和 Unix/Linux)都能正确处理文件路径。
💻代码
Directories
package mainimport (//fmt:用于格式化输入和输出。//io/fs:提供文件系统接口。//os:提供与操作系统交互的功能,如文件和目录操作。//path/filepath:用于处理文件路径。"fmt""io/fs""os""path/filepath"
)// check 函数用于检查函数调用的错误,如果有错误则触发(panic),并输出错误信息。
func check(e error) {if e != nil {panic(e)}
}func main() {//创建一个名为 subdir 的目录,权限为 0755(可读、可写、可执行)。err := os.Mkdir("subdir", 0755)check(err)//使用 defer 语句确保程序结束时删除 subdir 及其内容,避免在测试时留下临时文件。defer os.RemoveAll("subdir")//定义一个匿名函数 createEmptyFile,用于创建一个空文件,权限为 0644(可读、可写)。createEmptyFile := func(name string) {d := []byte("") //创建一个空的字节切片(slice),byte类型check(os.WriteFile(name, d, 0644))}//创建多个文件和嵌套目录。使用 os.MkdirAll 创建多级目录(如果不存在则创建)。createEmptyFile("subdir/file1")err = os.MkdirAll("subdir/parent/child", 0755)check(err)createEmptyFile("subdir/parent/file2")createEmptyFile("subdir/parent/file3")createEmptyFile("subdir/parent/child/file4")//使用 os.ReadDir 读取 subdir/parent 目录的内容c, err := os.ReadDir("subdir/parent")check(err)fmt.Println("Listing subdir/parent")//range遍历打印每个条目的名称和是否为目录。for _, entry := range c {fmt.Println(" ", entry.Name(), entry.IsDir())}//将当前工作目录更改为 subdir/parent/child。err = os.Chdir("subdir/parent/child")check(err)//读取当前目录(即 child 目录)的内容,并打印。c, err = os.ReadDir(".")check(err)fmt.Println("Listing subdir/parent/child")for _, entry := range c {fmt.Println(" ", entry.Name(), entry.IsDir())}//将当前工作目录更改为上上级目录(即返回到项目根目录)。err = os.Chdir("../../..")check(err)//使用 filepath.WalkDir 遍历 subdir 目录及其所有子目录,并调用 visit 函数处理每个条目。fmt.Println("Visiting subdir")err = filepath.WalkDir("subdir", visit)
}// visit 函数用于处理遍历到的每个条目,打印路径和是否为目录。如果遇到错误,则返回错误。
func visit(path string, d fs.DirEntry, err error) error {if err != nil {return err}fmt.Println(" ", path, d.IsDir())return nil
}
Temporary Files and Directories
package mainimport (//fmt:用于格式化输入和输出。//os:提供与操作系统交互的功能,如文件和目录操作。//path/filepath:用于处理文件路径。"fmt""os""path/filepath"
)// check 函数用于检查函数调用的错误。如果发生错误,程序会触发(panic),并输出错误信息。
func check(e error) {if e != nil {panic(e)}
}func main() {//os.CreateTemp 创建一个临时文件。//第一个参数为空字符串,表示文件将被创建在系统默认的临时目录中。//第二个参数 "sample" 是文件名的前缀。f, err := os.CreateTemp("", "sample")check(err)//如果成功,f 是一个文件对象,f.Name() 返回临时文件的完整路径。fmt.Println("Temp file name:", f.Name())//使用 defer 确保程序结束时删除临时目录及其内容。defer os.Remove(f.Name())//使用 f.Write 向临时文件写入字节数据 {1, 2, 3, 4}。如果写入失败,将调用 check(err)。_, err = f.Write([]byte{1, 2, 3, 4})check(err)//os.MkdirTemp 创建一个临时目录,类似于创建临时文件。返回的 dname 是新创建的临时目录的路径。dname, err := os.MkdirTemp("", "sampledir")check(err)fmt.Println("Temp dir name:", dname)//使用 defer 确保程序结束时删除临时目录及其内容。defer os.RemoveAll(dname)//使用 filepath.Join 函数将临时目录路径和文件名 "file1" 连接起来,生成完整的文件路径 fname。fname := filepath.Join(dname, "file1")//os.WriteFile 创建并写入文件,内容为字节 {1, 2},权限为 0666(可读、可写)。err = os.WriteFile(fname, []byte{1, 2}, 0666)check(err)
}
//输出
//Temp file name: /var/folders/8m/0gvzjwy56xn9d090yqjt4b_00000gn/T/sample2617831697
//Temp dir name: /var/folders/8m/0gvzjwy56xn9d090yqjt4b_00000gn/T/sampledir2719736875
🔍理解
- os.CreateTemp创建临时文件
- os.Remove删除临时文件
- os.MkdirTemp创建临时文件夹
- os.RemoveAll删除临时文件夹
💪无人扶我青云志,我自踏雪至山巅。

相关文章:
【go从零单排】Directories、Temporary Files and Directories目录和临时目录、临时文件
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,path/filepath 包提供了一组用于处理文件路径的函数&am…...
Diff 算法的误判
起源: for循环的:key的值使用index绑定,当循环列表条目变化更新,导致虚拟 DOM Diff 算法认为原有项被替换,而不是更新。 // vue2写法 错误例子 <template><div><button click"addItem">添加项目<…...
odoo 17 后端路由接口认证自定义
odoo 17 后端路由接口认证自定义 在接口中, 我们都知道有3中常用的认证方式 user 用户级认证public 访问时赋予公共用户none 不做任何用户级处理 一般不做数据库重要数据校验, 仅做访问处理 以上是源码提供的三种方式 接下来我们自定义一个认证方式 首先找到的这认证是在…...
租赁回收系统小程序
1.需求分析:首先,需要明确系统的功能和特点。这包括确定租赁回收的物品类型、用户群体、业务流程等。通过需求分析,可以确保系统能够满足市场和用户的需求。 2.系统设计:在需求分析的基础上,进行系统的整体设计。这包…...
SQL 注入详解:原理、危害与防范措施
文章目录 一、什么是SQL注入?二、SQL注入的工作原理三、SQL注入的危害1. 数据泄露2. 数据篡改3. 拒绝服务4. 权限提升 四、SQL注入的类型1. 基于错误的信息泄露2. 联合查询注入3. 盲注(1). 基于布尔响应的盲注(2). 基于时间延迟的盲注 4. 基于带外的注入 五、防范SQ…...
如何用Java爬虫“采集”商品订单详情的编程旅程
在这个数据驱动的世界里,如果你不是数据,那么你一定是在收集数据。就像蜜蜂采集花粉一样,我们程序员也需要采集数据,以便分析、优化和做出明智的决策。今天,我们就来聊聊如何使用Java编写一个爬虫,这个爬虫…...
《FreeRTOS任务基础知识篇》
FreeRTOS任务基础知识 1. 什么是多任务系统?2. FreeRTOS任务3. 任务状态3.1 运行态3.2 就绪态3.3 阻塞态3.4 挂起态 4. 任务优先级5. 任务的实现6. 任务控制块7. 任务堆栈 FreeRTOS的核心是任务管理,以下介绍FreeRTOS任务的一些基础知识。 1. 什么是多任…...
前端面试笔试(二)
目录 一、数据结构算法等综合篇 1.HTTP/2、ETag有关 二、代码输出篇 1.new URL,url中的hostname,pathname,href 扩展说一下url的组成部分和属性 URL的组成部分 urlInfo 对象的属性 2.一个递归的输出例子 3.数组去重的不普通方法1 4.数…...
基于Python 和 pyecharts 制作招聘数据可视化分析大屏
在本教程中,我们将展示如何使用 Python 和 pyecharts 库,通过对招聘数据的分析,制作一个交互式的招聘数据分析大屏。此大屏将通过不同类型的图表(如柱状图、饼图、词云图等)展示招聘行业、职位要求、薪资分布等信息。 …...
探索光耦:晶体管光耦——智能家居的隐形桥梁,让未来生活更智能
在这个日新月异的科技时代,智能家居正以前所未有的速度融入我们的日常生活,从智能灯光到温控系统,从安防监控到语音助手,每一处细节都透露着科技的温度与智慧。而在这场智能化浪潮中,一个看似不起眼却至关重要的组件—…...
三、模板与配置(上)
三、模板与配置 1、WXML模板语法-数据、属性绑定 讲解: 1-1、数据绑定的基本原则 在data中定义数据 Page({data: {//这里是你需要定义的数据} })在WXML中使用数据 {{ 你定义的数据 }}1-2、在data中定义页面的数据 在页面对应的.js文件中,把数据定…...
基于SpringBoot和Vue的公司文档管理系统设计与开发(源码+定制+开发)
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
Java21 Switch最全使用说明
Java21 Switch最全使用说明 Java 21 对 switch 语句进行了重大的改进和增强,使其变得更加灵活和强大。本文将详细介绍 Java 21 中 switch 语句的各种用法,包括基本语法、新特性、高级用法和最佳实践。 1. 基本语法 1.1 传统的 switch 语句 传统的 sw…...
普通电脑上安装属于自己的Llama 3 大模型和对话客户端
#大模型下载地址:# Llama3 因为Hugging Face官网正常无法访问,因此推荐国内镜像进行下载: 官网地址:https://huggingface.co 国内镜像:https://hf-mirror.com GGUF 模型文件名称接受,如上述列表中&…...
微信小程序原生 canvas画布截取视频帧保存为图片并进行裁剪
html页面: 视频尺寸过大会画布会撑开屏幕,要下滑 尺寸和视频链接是从上个页面点击传过来的,可自行定义 <canvas id"cvs1" type"2d" style"width: {{videoWidth}}px;height: {{videoHeight}}px;"><…...
社交网络图中结点的“重要性”计算
题目描述 输入 输出 输入样例1 9 14 1 2 1 3 1 4 2 3 3 4 4 5 4 6 5 6 5 7 5 8 6 7 6 8 7 8 7 9 3 3 4 9 输出样例1 Cc(3)0.47 Cc(4)0.62 Cc(9)0.35 AC代码 #include <iostream> #include <vector> #include <queue> #include <iomanip>using na…...
前端(1)——快速入门HTML
参考: W3school 1. HTML 我使用的是vs code,在使用之前,先安装以下几个插件: Auto Rename TageHTML CSS SupportLive Server 1.1 HTML标签 HTML全称是 Hypertext Markup Language(超文本标记语言) HTML通过一系列的标签(也称为…...
gitlab角色、权限
GitLab是一个基于Web的Git仓库管理工具,它提供了一套完整的角色和权限管理机制,以控制用户对项目和仓库的访问和操作权限。以下是GitLab中不同角色的基本权限概述: 访客(Guest): 可以查看项目中的公开信息。…...
Python办公——批量eml文件提取附件
目录 专栏导读背景1、库的介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动…...
Spring Boot 中 Druid 连接池与多数据源切换的方法
Spring Boot 中 Druid 连接池与多数据源切换的方法 在Spring Boot项目中,使用Druid连接池和进行多数据源切换是常见的需求,尤其是在需要读写分离、数据库分片等复杂场景下。本文将详细介绍如何在Spring Boot中配置Druid连接池并实现多数据源切换。 一、…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇
根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...
