golang的filepath包的幾個函數的細微區別php
Clean(),Dir(),ABS()配合Walk()使用的時候,因爲前三個函數返回值的細微差異,會形成遍歷目錄的時候,獲得的結果不同.
filepath.Abs("./myDoc")
//返回所給路徑的絕對路徑
這時候遍歷沒有問題,css
2019/06/12 10:50:31 監控 : 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 監控 : 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 監控 : 16, D:\workspace\go-wikitten\src\myDoc\you can also 2019/06/12 10:50:31 監控 : 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"));
//返回等價的最短路徑
//1.用一個斜線替換多個斜線
//2.清除當前路徑.
//3.清除內部的..和他前面的元素
//4.以/..開頭的,變成/
因爲個人目錄不存在1,3,4的狀況,因此遍歷也是符合個人指望,只是把絕對路徑換成了相對路徑html
2019/06/12 10:56:18 監控 : 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 監控 : 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 監控 : 16, myDoc\you can also 2019/06/12 10:56:18 監控 : 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"));
//返回路徑最後一個元素的目錄
//路徑爲空則返回.
這個遍歷,剛開始的時候,我覺得是正確的,後面才發現不對了.
首先,額外監控了給定目錄的父目錄,也就是myDoc的父目錄,參見第一行輸出
其次,若是目錄下沒有文件,接着仍是目錄,參見輸出的17和18行,遍歷的時候跳過去了git
2019/06/12 10:48:30 監控 : 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 監控 : 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 監控 : 16, myDoc 2019/06/12 10:48:30 監控 : 17, myDoc\you can also 2019/06/12 10:48:30 文件 : 18, myDoc\you can also\nest directories\binary files are OK too.jpg
※部分文章來源於網絡,若有侵權請聯繫刪除;更多文章和資料|點擊後方文字直達 ↓↓↓
100GPython自學資料包
阿里雲K8s實戰手冊
[阿里雲CDN排坑指南] CDN
ECS運維指南
DevOps實踐手冊
Hadoop大數據實戰手冊
Knative雲原生應用開發指南
OSS 運維實戰手冊
雲原生架構白皮書
Zabbix企業級分佈式監控系統源碼文檔
10G大廠面試題戳領