1. 检查是否为文件夹
func main() {
filename := "F:\\goworkspace\\caixukun\\a.txt"
if info, err := os.Stat(filename); err == nil {
fmt.Println("是否是文件夹: " + strconv.FormatBool(info.IsDir()))
}
}
2. 创建文件夹
func main() {
filename := "F:\\goworkspace\\caixukun\\zz"
os.MkdirAll(filename, 0777)
}
- 有了文件夹,就不会重复创建, 不影响原来路径下的内容
- 路径上的父级文件夹没被创建, 就会自动创建
3. 遍历文件夹中所有文件(不进入下一级)
func main() {
directory := "F:\\goworkspace\\caixukun"
dirEntries, _ := os.ReadDir(directory)
for _, entry := range dirEntries {
fmt.Println(entry.Info()) //文件信息
}
}
执行效果:
4. 遍历指定路径及其子目录中的所有文件
func main() {
directory := "F:\\goworkspace\\caixukun"
processor := func(path string, info fs.FileInfo, err error) error {
fmt.Printf("info: %v\n", info)
return nil
}
filepath.Walk(directory, processor)
}
5. 删除文件或空文件夹
func main() {
directory := "F:\\goworkspace\\caixukun\\zz"
if err := os.Remove(directory); err != nil {
fmt.Printf("err: %v\n", err)
}
}
6. 递归删除整个文件夹
func main() {
directory := "F:\\goworkspace\\caixukun\\zz"
if err := os.RemoveAll(directory); err != nil {
fmt.Printf("err: %v\n", err)
}
}