golang的文檔里面比較容易找到的一個(gè)方法是filepath.Walk,這個(gè)方法有個(gè)問(wèn)題是會(huì)自動(dòng)遞歸遍歷當(dāng)前目錄的子目錄,其實(shí)我們通常只是想得到一個(gè)目錄下面的文件列表,并不需要這么多的信息,同時(shí)這個(gè)方法代碼寫起來(lái)也比較多比較復(fù)雜,我們也沒(méi)有必要這么做。
如果僅僅是想獲取一個(gè)目錄下面的文件和文件夾的列表,有兩個(gè)比較簡(jiǎn)單的方法
利用ioutil的ReadDir方法
package main
import (
"fmt"
"io/ioutil"
)
func main() {
files, _ := ioutil.ReadDir("./")
for _, f := range files {
fmt.Println(f.Name())
}
}
利用filepath的Glob方法
package main
import (
"fmt"
"path/filepath"
)
func main() {
files, _ := filepath.Glob("*")
fmt.Println(files) // contains a list of all files in the current directory
}
補(bǔ)充:golang獲取文件/目錄(包含下面的文件)的大小
看代碼吧~
func DirSize(path string) (int64, error) {
var size int64
err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error {
if !info.IsDir() {
size += info.Size()
}
return err
})
return size, err
}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 基于golang uint8、int8與byte的區(qū)別說(shuō)明
- golang 監(jiān)聽(tīng)服務(wù)的信號(hào),實(shí)現(xiàn)平滑啟動(dòng),linux信號(hào)說(shuō)明詳解
- golang 實(shí)現(xiàn)時(shí)間戳和時(shí)間的轉(zhuǎn)化
- Golang Gob編碼(gob包的使用詳解)
- golang如何獲得一個(gè)變量的類型
- golang 如何實(shí)現(xiàn)HTTP代理和反向代理
- Golang實(shí)現(xiàn)http文件上傳小功能的案例
- golang值類型轉(zhuǎn)換成[]uint8類型的操作