1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-26 23:53:19 +08:00

Merge pull request #1628 from rht/size-walk

Use filepath.Walk to compute serialfile total size
This commit is contained in:
Juan Benet
2015-09-03 16:32:02 +02:00

View File

@ -149,31 +149,16 @@ func (f *serialFile) Stat() os.FileInfo {
} }
func (f *serialFile) Size() (int64, error) { func (f *serialFile) Size() (int64, error) {
return size(f.stat, f.FileName()) if !f.stat.IsDir() {
} return f.stat.Size(), nil
}
func size(stat os.FileInfo, filename string) (int64, error) {
if !stat.IsDir() { var du int64
return stat.Size(), nil err := fp.Walk(f.FileName(), func(p string, fi os.FileInfo, err error) error {
} if fi != nil && fi.Mode()&(os.ModeSymlink|os.ModeNamedPipe) == 0 {
du += fi.Size()
file, err := os.Open(filename) }
if err != nil { return nil
return 0, err })
} return du, err
files, err := file.Readdir(0)
if err != nil {
return 0, err
}
file.Close()
var output int64
for _, child := range files {
s, err := size(child, fp.Join(filename, child.Name()))
if err != nil {
return 0, err
}
output += s
}
return output, nil
} }