您好,登錄后才能下訂單哦!
這篇文章主要介紹了golang的filepath包的幾個(gè)函數(shù)的細(xì)微區(qū)別是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
golang的filepath包的幾個(gè)函數(shù)的細(xì)微區(qū)別
Clean(),Dir(),ABS()配合Walk()使用的時(shí)候,由于前三個(gè)函數(shù)返回值的細(xì)微差別,會(huì)造成遍歷目錄的時(shí)候,得到的結(jié)果不一樣. filepath.Abs("./myDoc") //返回所給路徑的絕對(duì)路徑 這時(shí)候遍歷沒(méi)有問(wèn)題,
2019/06/12 10:50:31 監(jiān)控 : 1, D:\workspace\go-wikitten\src\myDoc 2019/06/12 10:50:31 文件 : 2, myDoc\.gitkeep 2019/06/12 10:50:31 文件 : 3, myDoc\Sample HTML document.html 2019/06/12 10:50:31 文件 : 4, myDoc\Sample Markdown document.md 2019/06/12 10:50:31 監(jiān)控 : 5, D:\workspace\go-wikitten\src\myDoc\code snippets (expand me!) 2019/06/12 10:50:31 文件 : 6, myDoc\code snippets (expand me!)\Bash.sh 2019/06/12 10:50:31 文件 : 7, myDoc\code snippets (expand me!)\CSS.css 2019/06/12 10:50:31 文件 : 8, myDoc\code snippets (expand me!)\JavaScript.js 2019/06/12 10:50:31 文件 : 9, myDoc\code snippets (expand me!)\PHP.php 2019/06/12 10:50:31 文件 : 10, myDoc\code snippets (expand me!)\Python.py 2019/06/12 10:50:31 文件 : 11, myDoc\code snippets (expand me!)\Ruby.rb 2019/06/12 10:50:31 文件 : 12, myDoc\code snippets (expand me!)\SQL.sql 2019/06/12 10:50:31 文件 : 13, myDoc\code snippets (expand me!)\Scheme.scm 2019/06/12 10:50:31 文件 : 14, myDoc\code snippets (expand me!)\XML.xml 2019/06/12 10:50:31 文件 : 15, myDoc\index.md 2019/06/12 10:50:31 監(jiān)控 : 16, D:\workspace\go-wikitten\src\myDoc\you can also 2019/06/12 10:50:31 監(jiān)控 : 17, D:\workspace\go-wikitten\src\myDoc\you can also\nest directories 2019/06/12 10:50:31 文件 : 18, myDoc\you can also\nest directories\binary files are OK too.jpg
path.Clean("./myDoc")); //返回等價(jià)的最短路徑 //1.用一個(gè)斜線替換多個(gè)斜線 //2.清除當(dāng)前路徑. //3.清除內(nèi)部的..和他前面的元素 //4.以/..開(kāi)頭的,變成/ 由于我的目錄不存在1,3,4的情況,所以遍歷也是符合我的期望,只是把絕對(duì)路徑換成了相對(duì)路徑
2019/06/12 10:56:18 監(jiān)控 : 1, myDoc 2019/06/12 10:56:18 文件 : 2, myDoc\.gitkeep 2019/06/12 10:56:18 文件 : 3, myDoc\Sample HTML document.html 2019/06/12 10:56:18 文件 : 4, myDoc\Sample Markdown document.md 2019/06/12 10:56:18 監(jiān)控 : 5, myDoc\code snippets (expand me!) 2019/06/12 10:56:18 文件 : 6, myDoc\code snippets (expand me!)\Bash.sh 2019/06/12 10:56:18 文件 : 7, myDoc\code snippets (expand me!)\CSS.css 2019/06/12 10:56:18 文件 : 8, myDoc\code snippets (expand me!)\JavaScript.js 2019/06/12 10:56:18 文件 : 9, myDoc\code snippets (expand me!)\PHP.php 2019/06/12 10:56:18 文件 : 10, myDoc\code snippets (expand me!)\Python.py 2019/06/12 10:56:18 文件 : 11, myDoc\code snippets (expand me!)\Ruby.rb 2019/06/12 10:56:18 文件 : 12, myDoc\code snippets (expand me!)\SQL.sql 2019/06/12 10:56:18 文件 : 13, myDoc\code snippets (expand me!)\Scheme.scm 2019/06/12 10:56:18 文件 : 14, myDoc\code snippets (expand me!)\XML.xml 2019/06/12 10:56:18 文件 : 15, myDoc\index.md 2019/06/12 10:56:18 監(jiān)控 : 16, myDoc\you can also 2019/06/12 10:56:18 監(jiān)控 : 17, myDoc\you can also\nest directories 2019/06/12 10:56:18 文件 : 18, myDoc\you can also\nest directories\binary files are OK too.jpg
path.Dir("./myDoc")); //返回路徑最后一個(gè)元素的目錄 //路徑為空則返回. 這個(gè)遍歷,剛開(kāi)始的時(shí)候,我以為是正確的,后面才發(fā)現(xiàn)不對(duì)了. 首先,額外監(jiān)控了給定目錄的父目錄,也就是myDoc的父目錄,參見(jiàn)第一行輸出 其次,如果目錄下沒(méi)有文件,接著還是目錄,參見(jiàn)輸出的17和18行,遍歷的時(shí)候跳過(guò)去了
2019/06/12 10:48:30 監(jiān)控 : 1, . 2019/06/12 10:48:30 文件 : 2, myDoc\.gitkeep 2019/06/12 10:48:30 文件 : 3, myDoc\Sample HTML document.html 2019/06/12 10:48:30 文件 : 4, myDoc\Sample Markdown document.md 2019/06/12 10:48:30 監(jiān)控 : 5, myDoc 2019/06/12 10:48:30 文件 : 6, myDoc\code snippets (expand me!)\Bash.sh 2019/06/12 10:48:30 文件 : 7, myDoc\code snippets (expand me!)\CSS.css 2019/06/12 10:48:30 文件 : 8, myDoc\code snippets (expand me!)\JavaScript.js 2019/06/12 10:48:30 文件 : 9, myDoc\code snippets (expand me!)\PHP.php 2019/06/12 10:48:30 文件 : 10, myDoc\code snippets (expand me!)\Python.py 2019/06/12 10:48:30 文件 : 11, myDoc\code snippets (expand me!)\Ruby.rb 2019/06/12 10:48:30 文件 : 12, myDoc\code snippets (expand me!)\SQL.sql 2019/06/12 10:48:30 文件 : 13, myDoc\code snippets (expand me!)\Scheme.scm 2019/06/12 10:48:30 文件 : 14, myDoc\code snippets (expand me!)\XML.xml 2019/06/12 10:48:30 文件 : 15, myDoc\index.md 2019/06/12 10:48:30 監(jiān)控 : 16, myDoc 2019/06/12 10:48:30 監(jiān)控 : 17, myDoc\you can also 2019/06/12 10:48:30 文件 : 18, myDoc\you can also\nest directories\binary files are OK too.jpg
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“golang的filepath包的幾個(gè)函數(shù)的細(xì)微區(qū)別是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。