Go语言基础之Path包与FilePath包
文章引用自
path包的使用
package main; import (
"fmt"
"path"
) //go语言path包的学习 func main() {
//返回路径的最后一个元素
fmt.Println(path.Base("./a/b/c"));
//如果路径为空字符串,返回.
fmt.Println(path.Base(""));
//如果路径只有斜线,返回/
fmt.Println(path.Base("///")); //返回等价的最短路径
//1.用一个斜线替换多个斜线
//2.清除当前路径.
//3.清除内部的..和他前面的元素
//4.以/..开头的,变成/
fmt.Println(path.Clean("./a/b/../")); //返回路径最后一个元素的目录
//路径为空则返回.
fmt.Println(path.Dir("./a/b/c")); //返回路径中的扩展名
//如果没有点,返回空
fmt.Println(path.Ext("./a/b/c/d.jpg")); //判断路径是不是绝对路径
fmt.Println(path.IsAbs("./a/b/c"));
fmt.Println(path.IsAbs("/a/b/c")); //连接路径,返回已经clean过的路径
fmt.Println(path.Join("./a", "b/c", "../d/")); //匹配文件名,完全匹配则返回true
fmt.Println(path.Match("*", "a"));
fmt.Println(path.Match("*", "a/b/c"));
fmt.Println(path.Match("\\b", "b")); //分割路径中的目录与文件
fmt.Println(path.Split("./a/b/c/d.jpg"));
}
filepath包的使用
package main; import (
"path/filepath"
"fmt"
"os"
) //学习filepath包,兼容各操作系统的文件路径 func main() {
//返回所给路径的绝对路径
path, _ := filepath.Abs("./1.txt");
fmt.Println(path); //返回路径最后一个元素
fmt.Println(filepath.Base("./1.txt"));
//如果路径为空字符串,返回.
fmt.Println(filepath.Base(""));
//如果路径只有斜线,返回/
fmt.Println(filepath.Base("///")); //返回等价的最短路径
//1.用一个斜线替换多个斜线
//2.清除当前路径.
//3.清除内部的..和他前面的元素
//4.以/..开头的,变成/
fmt.Println(filepath.Clean("C:/a/b/../c"));
fmt.Println(filepath.Clean("./1.txt")); //返回路径最后一个元素的目录
//路径为空则返回.
fmt.Println(filepath.Dir("./a/b/c"));
fmt.Println(filepath.Dir("C:/a/b/c")); //返回链接文件的实际路径
path2, _ := filepath.EvalSymlinks("1.lnk");
fmt.Println(path2); //返回路径中的扩展名
//如果没有点,返回空
fmt.Println(filepath.Ext("./a/b/c/d.jpg")); //将路径中的/替换为路径分隔符
fmt.Println(filepath.FromSlash("./a/b/c")); //返回所有匹配的文件
match, _ := filepath.Glob("./*.go");
fmt.Println(match); //判断路径是不是绝对路径
fmt.Println(filepath.IsAbs("./a/b/c"));
fmt.Println(filepath.IsAbs("C:/a/b/c")); //连接路径,返回已经clean过的路径
fmt.Println(filepath.Join("C:/a", "/b", "/c")); //匹配文件名,完全匹配则返回true
fmt.Println(filepath.Match("*", "a"));
fmt.Println(filepath.Match("*", "C:/a/b/c"));
fmt.Println(filepath.Match("\\b", "b")); //返回以basepath为基准的相对路径
path3, _ := filepath.Rel("C:/a/b", "C:/a/b/c/d/../e");
fmt.Println(path3); //将路径使用路径列表分隔符分开,见os.PathListSeparator
//linux下默认为:,windows下为;
fmt.Println(filepath.SplitList("C:/windows;C:/windows/system")); //分割路径中的目录与文件
dir, file := filepath.Split("C:/a/b/c/d.jpg");
fmt.Println(dir, file); //将路径分隔符使用/替换
fmt.Println(filepath.ToSlash("C:/a/b")); //返回分区名
fmt.Println(filepath.VolumeName("C:/a/b/c")); //遍历指定目录下所有文件
filepath.Walk("./", func(path string, info os.FileInfo, err error) error {
fmt.Println(path);
return nil;
});
}
Go语言基础之Path包与FilePath包的更多相关文章
- go语言path包和filepath包的学习与使用
path包的使用 package main; import ( "fmt" "path" ) //go语言path包的学习 func main() { //返回 ...
- 【Java初探实例篇01】——Java语言基础
示例系列,将对每节知识辅以实际代码示例,通过代码实际编写,来深入学习和巩固学习的知识点. IDE:intellij IDEA: 语言:Java 本次示例:Java语言基础知识的应用. 创建包day_4 ...
- Go语言基础包之net/http
Go语言基础包之net/http Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现. net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的 ...
- [06 Go语言基础-包]
[06 Go语言基础-包] 包 什么是包,为什么使用包? 到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数.在实际中,这种把所有源代码编写在一个文件的方 ...
- Golang学习 - path/filepath 包
------------------------------------------------------------ filepath 中的函数会根据不同平台做不同的处理,比如路径分隔符.卷名等. ...
- Go语言基础之包
Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(packag ...
- Go语言基础之time包
Go语言基础之time包 时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法. Go语言中导入包 Go语言中使用import关键字导入包,包的名字使用双引号(”)包裹 ...
- GO学习-(15) Go语言基础之包
Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(packag ...
- D01-R语言基础学习
R语言基础学习——D01 20190410内容纲要: 1.R的下载与安装 2.R包的安装与使用方法 (1)查看已安装的包 (2)查看是否安装过包 (3)安装包 (4)更新包 3.结果的重用 4.R处理 ...
随机推荐
- 小匠第二周期打卡笔记-Task03
一.过拟合欠拟合及其解决方案 知识点记录 模型选择.过拟合和欠拟合: 训练误差和泛化误差: 训练误差 :模型在训练数据集上表现出的误差, 泛化误差 : 模型在任意一个测试数据样本上表现出的误差的期望, ...
- [HNOI2013] 游走 - 概率期望,高斯消元,贪心
假如我们知道了每条边经过的期望次数,则变成了一个显然的贪心.现在考虑如何求期望次数. 由于走到每个点后各向等概率,很显然一条边的期望次数可以与它的两个端点的期望次数,转化为求点的期望次数 考虑每个点对 ...
- 创建一个Java Web项目,获取POST数据并显示
新建一个新的Java Web工程项目 打开IntelliJ IDEA 新建一个工程,选择选择Java Enterprise,设置Tomcat的安装目录,点击下一步. 选中Create project ...
- win 下 docker 环境配置
声明 此文只针对 win7.win10 家庭版等用户操作系统,因为这些系统无法使用 windows 的 Hyper-V 虚拟技术.只能借助于 Virtual Box 虚拟机来使用 docker. Do ...
- while、for循环结构_python
一.while循环的基础例子: 例子1:判断是否大于50 例子2:按需打印乘法口诀 例子3:无限循环 while True: print (“true”) 二.for循环 1.for循环的常见范围的用 ...
- java_基础_关于父类继承的问题
关于java父类继承: 首先抽象类有这样几个规则 1.定义为抽象类的类里可以没有抽象方法 2.抽象类里可以有普通的不带abstract关键字的方法 3.抽象类里可以有主main方法 4.抽象类也可以向 ...
- # E. Mahmoud and Ehab and the xor-MST dp/数学+找规律+xor
E. Mahmoud and Ehab and the xor-MST dp/数学/找规律 题意 给出一个完全图的阶数n(1e18),点由0---n-1编号,边的权则为编号间的异或,问最小生成树是多少 ...
- D. Game with modulo 交互题(取余(膜)性质)附带a mod b<a/2证明
D. Game with modulo 交互题(取余(膜)性质) 题意 猜一个点\(a\)可以向机器提问 点对\((x,y)\) 如果\(x\mod(a)>=y\mod(a)\)回答\(x\) ...
- Spring 事务归纳
Spring transaction 什么是事务 A用户向B用户转帐100,第一步要从A帐户扣出100,第二步要将B帐户加上100.其中无论是第一步失败,还是第二步失败.都应该将A.B帐户的余额保持和 ...
- IntelliJ IDEA 2017.3尚硅谷-----查看项目配置