Golang: Get directory size recursively.
import (
"path/filepath"
"os"
)
const notRegularFileMode os.FileMode = os.ModeDir | os.ModeSymlink | os.ModeNamedPipe | os.ModeSocket | os.ModeDevice | os.ModeCharDevice | os.ModeIrregular
func GetDirectorySize(path string) (int64, error) {
var size int64
err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error {
if info != nil && (info.Mode()¬RegularFileMode) == 0 {
size += info.Size()
}
return err
})
return size, err
}