1
0
dwelling-files/pkg/files/filesize.go

23 lines
585 B
Go
Raw Normal View History

2022-06-27 04:38:09 +04:00
package files
import (
"strconv"
"strings"
)
var sizeSuffixes = [...]string{"B", "KiB", "MiB", "GiB", "TiB"}
// convertFileSize converts size in bytes down to biggest units it represents.
// Returns a concatenation of a converted size and a unit
func convertFileSize(size int64) string {
2022-06-27 04:38:09 +04:00
var idx int
var fSize float64 = float64(size)
for idx = 0; fSize >= 1024; fSize /= 1024 {
idx++
}
fSizeStr := strconv.FormatFloat(fSize, 'f', 3, 64)
fSizeStr = strings.TrimRight(fSizeStr, "0")
fSizeStr = strings.TrimSuffix(fSizeStr, ".")
return fSizeStr + " " + sizeSuffixes[idx]
2022-06-27 04:38:09 +04:00
}