ruby - 将人类可读的文件大小转换为 ruby 中的字节
问题描述
我通过了这个链接。我的要求与此完全相反。示例 10KB 的字符串需要转换为 10240(其等效字节大小)。我们有这方面的宝石吗?还是红宝石中的内置方法?我研究了一下,没发现
解决方案
编写自己的代码非常简单:
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
如果您需要KiB
,MiB
等等,那么您只需添加乘数。
推荐阅读
- scala - Akka gRPC/HTTP Interop 给出 404
- reactjs - 如何使链接出现在我制作的组件上方?
- django - 在 heroku 中更改 DATABASE_URL
- python - 当函数的输入为数组时,如何确定 scipy.optimize.fmin 的 xtol?
- mysql - 如何使用条件 A + B 在 Active Record 中搜索
- bash - 使用 sed 查找和替换行
- angularjs - 使用复选框的 html 组件中的“$event.target.checked”问题
- java - 这里的变量count,是在初始化后声明的,这个在JAVA中叫什么概念,在哪里可以了解更多呢?
- java - Spring ClassCastException?
- javascript - 全局变量不起作用 - 节点 14.15.3