main.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "strconv"
  6. )
  7. func GetDirectoryDiskUsed(directories []string) (uint64, error) {
  8. //cmd := exec.Command("du", "-s")
  9. //cmd.Args = append(cmd.Args, directories...)
  10. //output, err := cmd.CombinedOutput()
  11. //if err != nil {
  12. // fmt.Println(err)
  13. // return 0, err
  14. //}
  15. //lines := strings.Split(string(output), "\n")
  16. //fmt.Println(lines)
  17. //sum := uint64(0)
  18. //for _, line := range lines {
  19. // fields := strings.Fields(line)
  20. // parseUint, err := strconv.ParseUint(fields[0], 10, 64)
  21. // fmt.Println("parseUint", parseUint)
  22. // if err != nil {
  23. // fmt.Println(err)
  24. // return 0, err
  25. // }
  26. // sum += parseUint
  27. //}
  28. sum := uint64(0)
  29. for _, directory := range directories {
  30. fileInfo, err := os.Stat(directory)
  31. if err != nil {
  32. fmt.Println(err)
  33. return 0, err
  34. }
  35. fmt.Println("fileInfo.Size()", fileInfo.Size())
  36. parseUint, err := strconv.ParseUint(strconv.FormatInt(fileInfo.Size(), 10), 10, 64)
  37. fmt.Println("parseUint", parseUint)
  38. if err != nil {
  39. fmt.Println(err)
  40. return 0, err
  41. }
  42. sum += parseUint
  43. }
  44. return sum, nil
  45. }
  46. func main() {
  47. diskUsed, err := GetDirectoryDiskUsed([]string{"/root/cicv-data-closedloop", "/root/pjirobot/data/cicv-data-closedloop"})
  48. if err != nil {
  49. return
  50. }
  51. fmt.Println("diskUsed", diskUsed)
  52. }