首页 > 解决方案 > 将人类可读的文件大小转换为 ruby​​ 中的字节

问题描述

我通过了这个链接。我的要求与此完全相反。示例 10KB 的字符串需要转换为 10240(其等效字节大小)。我们有这方面的宝石吗?还是红宝石中的内置方法?我研究了一下,没发现

标签: rubybytefilesize

解决方案


文件大小ruby​​gems

编写自己的代码非常简单:

module ToBytes
  def to_bytes
    md = match(/^(?<num>\d+)\s?(?<unit>\w+)?$/)
    md[:num].to_i * 
      case md[:unit]
      when 'KB'
        1024
      when 'MB'
        1024**2
      when 'GB'
        1024**3
      when 'TB'
        1024**4
      when 'PB'
        1024**5
      when 'EB'
        1024**6
      when 'ZB'
        1024**7
      when 'YB'
        1024**8
      else
        1
      end
  end
end

size_string = "10KB"
size_string.extend(ToBytes).to_bytes
=> 10240

String.include(ToBytes)
"1024 KB".to_bytes
=> 1048576

如果您需要KiBMiB等等,那么您只需添加乘数。


推荐阅读