12345678910111213141516171819202122232425262728293031323334353637 |
- // +build windows
- package directory
- import (
- "os"
- "path/filepath"
- )
- // Size walks a directory tree and returns its total size in bytes.
- func Size(dir string) (size int64, err error) {
- err = filepath.Walk(dir, func(d string, fileInfo os.FileInfo, err error) error {
- if err != nil {
- // if dir does not exist, Size() returns the error.
- // if dir/x disappeared while walking, Size() ignores dir/x.
- if os.IsNotExist(err) && d != dir {
- return nil
- }
- return err
- }
- // Ignore directory sizes
- if fileInfo == nil {
- return nil
- }
- s := fileInfo.Size()
- if fileInfo.IsDir() || s == 0 {
- return nil
- }
- size += s
- return nil
- })
- return
- }
|