你如何在Elixir中获得文件的大小?

时间:2015-10-12 20:26:45

标签: elixir

给定磁盘上文件的路径,以字节为单位检索文件大小的最常用方法是什么?

path = "/tmp/some_file.txt"

1 个答案:

答案 0 :(得分:13)

这是通过利用stat模块中的内置File函数在Elixir中实现的;在这里,我将讨论两个:File.stat/2File.stat!/2

两个函数都为它们的“值”返回%File.Stat{}结构,然后我们通过模式匹配对其进行解构,以获取包含文件大小的size字段(以字节为单位)。这些函数只在1)返回和2)处理异常(例如找不到文件)方面有所不同。

对于抛出异常的文件大小检查File.Error):

iex(1)> %{size: size} = File.stat! path
1562

用于正常处理异常并返回错误元组的文件大小检查

iex(1)> case File.stat path do
...(1)>   {:ok, %{size: size}} -> size
...(1)>   {:error, reason} -> ... # handle error
...(1)> end
1562

N.B :在处理符号链接时,还有其他一些处理方式略有不同的函数,值得了解:File.lstat/2& File.lstat!/2