[Golang] Delete Zero Size Files in Directory

Find all files with size = 0 in the directory recursively. First we use filepath.Walk to recursively find all files in the directory, sub-directories included. Then we check the file size and if it is zero, call os.Remove to delete the file.

import (

func DeleteZeroSizeFile(dir string) error {
      return filepath.Walk(dir, func(path string, info os.FileInfo, e error) error {
              if e != nil {
                      return e

              if info.Mode().IsRegular() && info.Size() == 0 {
                      fmt.Println("Removing", path)
              return nil

If you do not want to walk into sub-directories, use ioutil.ReadDir.

Tested on: Ubuntu Linux 18.04, Go 1.10.2.


[1]func Walk - filepath - The Go Programming Language
[2]func ReadDir - ioutil - The Go Programming Language