1. 检查是否为文件夹

  1. func main() {
  2. filename := "F:\\goworkspace\\caixukun\\a.txt"
  3. if info, err := os.Stat(filename); err == nil {
  4. fmt.Println("是否是文件夹: " + strconv.FormatBool(info.IsDir()))
  5. }
  6. }

2. 创建文件夹

  1. func main() {
  2. filename := "F:\\goworkspace\\caixukun\\zz"
  3. os.MkdirAll(filename, 0777)
  4. }
  • 有了文件夹,就不会重复创建, 不影响原来路径下的内容
  • 路径上的父级文件夹没被创建, 就会自动创建

3. 遍历文件夹中所有文件(不进入下一级)

  1. func main() {
  2. directory := "F:\\goworkspace\\caixukun"
  3. dirEntries, _ := os.ReadDir(directory)
  4. for _, entry := range dirEntries {
  5. fmt.Println(entry.Info()) //文件信息
  6. }
  7. }

执行效果:
image.png

4. 遍历指定路径及其子目录中的所有文件

  1. func main() {
  2. directory := "F:\\goworkspace\\caixukun"
  3. processor := func(path string, info fs.FileInfo, err error) error {
  4. fmt.Printf("info: %v\n", info)
  5. return nil
  6. }
  7. filepath.Walk(directory, processor)
  8. }

5. 删除文件或空文件夹

  1. func main() {
  2. directory := "F:\\goworkspace\\caixukun\\zz"
  3. if err := os.Remove(directory); err != nil {
  4. fmt.Printf("err: %v\n", err)
  5. }
  6. }

6. 递归删除整个文件夹

  1. func main() {
  2. directory := "F:\\goworkspace\\caixukun\\zz"
  3. if err := os.RemoveAll(directory); err != nil {
  4. fmt.Printf("err: %v\n", err)
  5. }
  6. }