let string_of_bytes n =
      let (sz, acc) =
        List.fold_left
          (fun (sz, acc) e ->
             let q = Int64.div sz 1024L in
             let r = Int64.rem sz 1024L in
             let acc =
               if r <> 0L then (Printf.sprintf "%Ld %s" r e) :: acc else acc
             in (q, acc))
          (n, []) [ "B""KB""MB""GB" ] in
      let acc = if sz <> 0L then (Printf.sprintf "%Ld TB" sz) :: acc else acc
      in match acc with | [] -> "0 B" | _ -> String.concat " " acc