mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-26 09:14:06 +08:00
64 lines
1.0 KiB
Go
64 lines
1.0 KiB
Go
package kit
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
// "log"
|
|
"os"
|
|
"path"
|
|
)
|
|
|
|
func FmtSize(size int64) string {
|
|
if size > 1000000000 {
|
|
return fmt.Sprintf("%d.%dG", size/1000000000, size/100000000%100)
|
|
}
|
|
|
|
if size > 1000000 {
|
|
return fmt.Sprintf("%d.%dM", size/100000, size/100000%100)
|
|
}
|
|
|
|
if size > 1000 {
|
|
return fmt.Sprintf("%d.%dK", size/1000, size/100%100)
|
|
}
|
|
|
|
return fmt.Sprintf("%dB", size)
|
|
}
|
|
|
|
func FmtNano(nano int64) string {
|
|
if nano > 1000000000 {
|
|
return fmt.Sprintf("%d.%ds", nano/1000000000, nano/100000000%100)
|
|
}
|
|
|
|
if nano > 1000000 {
|
|
return fmt.Sprintf("%d.%dms", nano/100000, nano/100000%100)
|
|
}
|
|
|
|
if nano > 1000 {
|
|
return fmt.Sprintf("%d.%dus", nano/1000, nano/100%100)
|
|
}
|
|
|
|
return fmt.Sprintf("%dns", nano)
|
|
}
|
|
|
|
func Check(e error) bool {
|
|
if e != nil {
|
|
panic(e)
|
|
}
|
|
return true
|
|
}
|
|
|
|
func DirWalk(file string, hand func(file string)) {
|
|
s, e := os.Stat(file)
|
|
Check(e)
|
|
hand(file)
|
|
|
|
if s.IsDir() {
|
|
fs, e := ioutil.ReadDir(file)
|
|
Check(e)
|
|
|
|
for _, v := range fs {
|
|
DirWalk(path.Join(file, v.Name()), hand)
|
|
}
|
|
}
|
|
}
|