溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

golang的filepath包的幾個(gè)函數(shù)的細(xì)微區(qū)別是什么

發(fā)布時(shí)間:2021-12-15 09:59:37 來(lái)源:億速云 閱讀:153 作者:小新 欄目:云計(jì)算

這篇文章主要介紹了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í)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI