### 获取目录
> **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
- 多线程:通道思路
- 多线程爬虫:快代理