### 獲取目錄
> **func ReadDir(dirname string)**
> **返回 ([]os.FileInfo, error)**
> dirname string 文件路徑
> []os.FileInfo 文件名組成的數組
> error 錯誤返回
```
package main
import (
"fmt"
"io/ioutil"
)
// 獲取E盤文件目錄的文件名
func main() {
dir, err := ioutil.ReadDir("E:\\")
if err != nil {
fmt.Println(err)
}
// num 變量可以用匿名函數 去掉索引
for num, file := range dir {
//file.Name()函數 獲取到文件名
fmt.Println(num, file.Name())
}
}
```
```
file.Name() 返回的 文件名 當然根據os.FileInfo定義可知
type FileInfo interface {
Name() string //文件名
Size() int //文件長度(單位字節)
Mode() FileMode //文件打開模式
ModTime() time.Time //文件修改時間
IsDir() bool //是否是文件夾
Sys() interface() //基礎數據源
}
```
```
package main
import (
"fmt"
"io/ioutil"
)
// 獲取文件名 和 文件夾名
func Data(dirPth string) error {
dir, err := ioutil.ReadDir(dirPth)
if err != nil {
return err
}
for _, file := range dir {
if file.IsDir() {
fmt.Println("文件夾名:", file.Name())
} else {
fmt.Println("文件名:", file.Name())
}
}
return nil
}
func main() {
Data("E:\\flie")
}
```
### 獲取目錄及子目錄所有文件
> func walk(root string, walkFn walkFunc) error
> root string 傳入路徑
> walkFn walkFunc 功能函數
```
package main
import (
"fmt"
"os"
"path/filepath"
)
// 獲取目錄下 所有文件名
func Data(dirPth string) {
// 聲明個變量
err := filepath.Walk(dirPth, func(path string, f os.FileInfo, err error) error {
if f == nil {
return err
}
if f.IsDir() {
return nil
}
// 這里打印出 文件名
println(path)
return nil
})
if err != nil {
fmt.Println(err)
}
}
func main() {
Data("E:\\flie")
}
結果:
E:\flie\1\1.txt
E:\flie\2\2.txt
E:\flie\3.txt
```
```
// 這串玩意需要研究
err := filepath.Walk(dirPth,func(path string, info os.FileInfo, err error) error {
? ? })
```
- 安裝開發環境
- 安裝開發環境
- 安裝詳細教程
- 引入包
- Go語言基礎
- 基本變量與數據類型
- 變量
- 數據類型
- 指針
- 字符串
- 代碼總結
- 常量與運算符
- 常量
- 運算符
- 流程控制
- if判斷
- for循環
- switch分支
- goto跳轉
- 斐波那契數列
- Go語言內置容器
- 數組
- 切片
- 映射
- 函數
- 函數(上)
- 函數(中)
- 函數(下)
- 小節
- 包管理
- 結構體
- 結構體(上)
- 結構體(中)
- 結構體(下)
- 小節
- 錯誤處理
- 錯誤處理
- 宕機
- 錯誤應用
- 小節
- 文件操作
- 獲取目錄
- 創建和刪除目錄
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 處理JSON文件
- 接口與類型
- 接口的創建與實現
- 接口賦值
- 接口嵌入
- 空接口
- 類型斷言(1)
- 類型斷言(2)
- 小節
- 并發與通道
- goroutine協程
- runtime包
- 通道channel
- 單向通道channel
- select
- 線程同步
- 多線程的深入學習
- http編程
- http簡介
- Client和Request
- get請求
- post請求
- 模塊函數方法
- 模塊
- fmt庫,模塊
- 項目練習
- 爬蟲:高三網
- 爬蟲:快代理
- 爬蟲:快代理2
- 多線程:通道思路
- 多線程爬蟲:快代理