一、獲取當(dāng)前目錄下的文件或目錄信息(不包含多級(jí)子目錄)
func main() {
pwd,_ := os.Getwd()
//獲取文件或目錄相關(guān)信息
fileInfoList,err := ioutil.ReadDir(pwd)
if err != nil {
log.Fatal(err)
}
fmt.Println(len(fileInfoList))
for i := range fileInfoList {
fmt.Println(fileInfoList[i].Name()) //打印當(dāng)前文件或目錄下的文件或目錄名
}
}
二、獲取當(dāng)前目錄下的文件或目錄名(不包含多級(jí)子目錄)
package main
import (
"os"
"io/ioutil"
"log"
"fmt"
"path/filepath"
)
func main() {
pwd,_ := os.Getwd()
//獲取當(dāng)前目錄下的文件或目錄名(包含路徑)
filepathNames,err := filepath.Glob(filepath.Join(pwd,"*"))
if err != nil {
log.Fatal(err)
}
for i := range filepathNames {
fmt.Println(filepathNames[i]) //打印path
}
}
三、獲取當(dāng)前文件或目錄下的所有文件或目錄信息(包括子目錄)
package main
import (
"os"
"io/ioutil"
"log"
"fmt"
"path/filepath"
)
func main() {
pwd,_ := os.Getwd()
//獲取當(dāng)前目錄下的所有文件或目錄信息
filepath.Walk(pwd,func(path string, info os.FileInfo, err error) error{
fmt.Println(path) //打印path信息
fmt.Println(info.Name()) //打印文件或目錄名
return nil
})
}
補(bǔ)充:Golang ioutil.ReadDir 讀取目錄下的內(nèi)容
ioutil中提供了一個(gè)非常翻遍的函數(shù)函數(shù)ReadDir,他讀取目錄并返回排好序的文件以及子目錄名([]os.FileInfo)
example:編寫(xiě)程序輸出某目錄下的所有文件。
package main
import (
"io/ioutil"
"fmt"
"os"
)
func listAll(path string, curHier int) {
readerInfos ,err := ioutil.ReadDir(path)
if err != nil {
fmt.Println(err)
return
}
for _, info := range readerInfos {
if info.IsDir() {
for tmpheir := curHier; tmpheir >0; tmpheir-- {
fmt.Printf("|\t")
}
fmt.Println(info.Name(),"\\")
listAll(path + "\\" + info.Name(),curHier+1)
}else {
for tmpheir := curHier ;tmpheir >0; tmpheir-- {
fmt.Printf("|\t")
}
fmt.Println(info.Name())
}
}
}
func main() {
dir := os.Args[1]
listAll(dir,0)
}
我是在win10 環(huán)境中試驗(yàn)。成功
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 詳解Golang使用MongoDB通用操作
- Golang 如何判斷數(shù)組某個(gè)元素是否存在(isset)
- golang獲取網(wǎng)卡信息操作
- golang判斷net.Conn 是否已關(guān)閉的操作
- 解決golang json解析出現(xiàn)值為空的問(wèn)題
- golang 獲取字符串長(zhǎng)度的案例
- 對(duì)Golang中的runtime.Caller使用說(shuō)明
- 如何判斷Golang接口是否實(shí)現(xiàn)的操作
- 詳解golang中的method