github.com/endocode/docker@v1.4.2-0.20160113120958-46eb4700391e/pkg/directory/directory_windows.go (about) 1 // +build windows 2 3 package directory 4 5 import ( 6 "os" 7 "path/filepath" 8 9 "github.com/docker/docker/pkg/longpath" 10 ) 11 12 // Size walks a directory tree and returns its total size in bytes. 13 func Size(dir string) (size int64, err error) { 14 fixedPath, err := filepath.Abs(dir) 15 if err != nil { 16 return 17 } 18 fixedPath = longpath.AddPrefix(fixedPath) 19 err = filepath.Walk(dir, func(d string, fileInfo os.FileInfo, e error) error { 20 // Ignore directory sizes 21 if fileInfo == nil { 22 return nil 23 } 24 25 s := fileInfo.Size() 26 if fileInfo.IsDir() || s == 0 { 27 return nil 28 } 29 30 size += s 31 32 return nil 33 }) 34 return 35 }