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() ...
- Golang学习 - path/filepath 包
------------------------------------------------------------ filepath 中的函数会根据不同平台做不同的处理,比如路径分隔符.卷名等. ...
- Go语言备忘录:net/http包的使用模式和源码解析
本文是晚辈对net/http包的一点浅显的理解,文中如有错误的地方请前辈们指出,以免误导! 转摘本文也请注明出处:Go语言备忘录:net/http包的使用模式和源码解析,多谢! 目录: 一.http ...
- R语言·文本挖掘︱Rwordseg/rJava两包的安装(安到吐血)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言·文本挖掘︱Rwordseg/rJava ...
- 《快学 Go 语言》第 16 课 —— 包管理 GOPATH 和 Vendor
到目前位置我们一直在编写单文件代码,只有一个 main.go 文件.本节我们要开始朝完整的项目结构迈进,需要使用 Go 语言的模块管理功能来组织很多的代码文件. 细数 Go 语言的历史发展,模块管理经 ...
- R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...
- 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题
动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...
- R语言数据分析利器data.table包—数据框结构处理精讲
R语言数据分析利器data.table包-数据框结构处理精讲 R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代 ...
- R语言入门级实例——用igragh包分析社群
R语言入门级实例——用igragh包分析社群 引入—— 本文的主要目的是初步实现R的igraph包的基础功能,包括绘制关系网络图(social relationship).利用算法进行社群发现(com ...
随机推荐
- nginx的websock问题解决
生产环境中有一个项目需要使用到websock,但是项目上线后发现websock连接后马上断开,但是在测试环境没有问题,后来就想到配置文件和nginx版本问题 核对后发现,nginx和配置文件都是相同的 ...
- VBS处理AD帐号密码到期提醒的脚本[zt]
原文:https://gallery.technet.microsoft.com/scriptcenter/f7f5f7ed-14ee-4d0e-81c2-7d95ce7e08f5 '======== ...
- 102/107. Binary Tree Level Order Traversal/II
原文题目: 102. Binary Tree Level Order Traversal 107. Binary Tree Level Order Traversal II 读题: 102. 层序遍历 ...
- C#格式化数值结果表(格式化字符串)
字符 说明 示例 输出 C 货币 string.Format("{0:C3}", 2) $2.000 D 十进制 string.Format("{0:D3}", ...
- fwrite()中参数含义——size和count经常用搞反
函数原型:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); 注意:这个函数以二进制形式对文件进 ...
- java 代码块,静态代码块,构造器等的执行顺序
写了一段测试代码,如下: public class ExecutionSequence extends fatherClass{ static{ System.out.printl ...
- 微信小程序--分享报错(thirdScriptError Cannot read property 'from' of undefined;at pages/index/index page onShareAppMessage function TypeError: Cannot read property 'from' of undefined)
分享功能: onShareAppMessage: function (res) { if (res.from === 'button') { // 来自页面内转发按钮 console.log(res. ...
- matlab stereo_gui立体标定
http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples 文档中举了几个例子,有关双目的是第5个, 这个例子展示了如何使 ...
- linux下面设置密码失效参考
chage -E 2005-12-31 user1 设置用户口令的失效期限
- JDBC的基本概念
英文名:Java DataBase Connectivity 中文名:数据库连接 作用: java操作数据库 本质上(sun公司的程序员)定义的一套操作关系型数据库的规则也就是接口,各数据库厂商实现接 ...