千家信息网

golang的filepath包的几个函数的细微区别是什么

发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,这篇文章主要介绍了golang的filepath包的几个函数的细微区别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。golang
千家信息网最后更新 2024年10月22日golang的filepath包的几个函数的细微区别是什么

这篇文章主要介绍了golang的filepath包的几个函数的细微区别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

golang的filepath包的几个函数的细微区别

Clean(),Dir(),ABS()配合Walk()使用的时候,由于前三个函数返回值的细微差别,会造成遍历目录的时候,得到的结果不一样. filepath.Abs("./myDoc") //返回所给路径的绝对路径 这时候遍历没有问题,

2019/06/12 10:50:31 监控 : 1, D:\workspace\go-wikitten\src\myDoc2019/06/12 10:50:31 文件 : 2, myDoc\.gitkeep2019/06/12 10:50:31 文件 : 3, myDoc\Sample HTML document.html2019/06/12 10:50:31 文件 : 4, myDoc\Sample Markdown document.md2019/06/12 10:50:31 监控 : 5, D:\workspace\go-wikitten\src\myDoc\code snippets (expand me!)2019/06/12 10:50:31 文件 : 6, myDoc\code snippets (expand me!)\Bash.sh2019/06/12 10:50:31 文件 : 7, myDoc\code snippets (expand me!)\CSS.css2019/06/12 10:50:31 文件 : 8, myDoc\code snippets (expand me!)\JavaScript.js2019/06/12 10:50:31 文件 : 9, myDoc\code snippets (expand me!)\PHP.php2019/06/12 10:50:31 文件 : 10, myDoc\code snippets (expand me!)\Python.py2019/06/12 10:50:31 文件 : 11, myDoc\code snippets (expand me!)\Ruby.rb2019/06/12 10:50:31 文件 : 12, myDoc\code snippets (expand me!)\SQL.sql2019/06/12 10:50:31 文件 : 13, myDoc\code snippets (expand me!)\Scheme.scm2019/06/12 10:50:31 文件 : 14, myDoc\code snippets (expand me!)\XML.xml2019/06/12 10:50:31 文件 : 15, myDoc\index.md2019/06/12 10:50:31 监控 : 16, D:\workspace\go-wikitten\src\myDoc\you can also2019/06/12 10:50:31 监控 : 17, D:\workspace\go-wikitten\src\myDoc\you can also\nest directories2019/06/12 10:50:31 文件 : 18, myDoc\you can also\nest directories\binary files are OK too.jpg

path.Clean("./myDoc")); //返回等价的最短路径 //1.用一个斜线替换多个斜线 //2.清除当前路径. //3.清除内部的..和他前面的元素 //4.以/..开头的,变成/ 由于我的目录不存在1,3,4的情况,所以遍历也是符合我的期望,只是把绝对路径换成了相对路径

2019/06/12 10:56:18 监控 : 1, myDoc2019/06/12 10:56:18 文件 : 2, myDoc\.gitkeep2019/06/12 10:56:18 文件 : 3, myDoc\Sample HTML document.html2019/06/12 10:56:18 文件 : 4, myDoc\Sample Markdown document.md2019/06/12 10:56:18 监控 : 5, myDoc\code snippets (expand me!)2019/06/12 10:56:18 文件 : 6, myDoc\code snippets (expand me!)\Bash.sh2019/06/12 10:56:18 文件 : 7, myDoc\code snippets (expand me!)\CSS.css2019/06/12 10:56:18 文件 : 8, myDoc\code snippets (expand me!)\JavaScript.js2019/06/12 10:56:18 文件 : 9, myDoc\code snippets (expand me!)\PHP.php2019/06/12 10:56:18 文件 : 10, myDoc\code snippets (expand me!)\Python.py2019/06/12 10:56:18 文件 : 11, myDoc\code snippets (expand me!)\Ruby.rb2019/06/12 10:56:18 文件 : 12, myDoc\code snippets (expand me!)\SQL.sql2019/06/12 10:56:18 文件 : 13, myDoc\code snippets (expand me!)\Scheme.scm2019/06/12 10:56:18 文件 : 14, myDoc\code snippets (expand me!)\XML.xml2019/06/12 10:56:18 文件 : 15, myDoc\index.md2019/06/12 10:56:18 监控 : 16, myDoc\you can also2019/06/12 10:56:18 监控 : 17, myDoc\you can also\nest directories2019/06/12 10:56:18 文件 : 18, myDoc\you can also\nest directories\binary files are OK too.jpg

path.Dir("./myDoc")); //返回路径最后一个元素的目录 //路径为空则返回. 这个遍历,刚开始的时候,我以为是正确的,后面才发现不对了. 首先,额外监控了给定目录的父目录,也就是myDoc的父目录,参见第一行输出 其次,如果目录下没有文件,接着还是目录,参见输出的17和18行,遍历的时候跳过去了

2019/06/12 10:48:30 监控 : 1, .2019/06/12 10:48:30 文件 : 2, myDoc\.gitkeep2019/06/12 10:48:30 文件 : 3, myDoc\Sample HTML document.html2019/06/12 10:48:30 文件 : 4, myDoc\Sample Markdown document.md2019/06/12 10:48:30 监控 : 5, myDoc2019/06/12 10:48:30 文件 : 6, myDoc\code snippets (expand me!)\Bash.sh2019/06/12 10:48:30 文件 : 7, myDoc\code snippets (expand me!)\CSS.css2019/06/12 10:48:30 文件 : 8, myDoc\code snippets (expand me!)\JavaScript.js2019/06/12 10:48:30 文件 : 9, myDoc\code snippets (expand me!)\PHP.php2019/06/12 10:48:30 文件 : 10, myDoc\code snippets (expand me!)\Python.py2019/06/12 10:48:30 文件 : 11, myDoc\code snippets (expand me!)\Ruby.rb2019/06/12 10:48:30 文件 : 12, myDoc\code snippets (expand me!)\SQL.sql2019/06/12 10:48:30 文件 : 13, myDoc\code snippets (expand me!)\Scheme.scm2019/06/12 10:48:30 文件 : 14, myDoc\code snippets (expand me!)\XML.xml2019/06/12 10:48:30 文件 : 15, myDoc\index.md2019/06/12 10:48:30 监控 : 16, myDoc2019/06/12 10:48:30 监控 : 17, myDoc\you can also2019/06/12 10:48:30 文件 : 18, myDoc\you can also\nest directories\binary files are OK too.jpg

感谢你能够认真阅读完这篇文章,希望小编分享的"golang的filepath包的几个函数的细微区别是什么"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0