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:
@ -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
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user