给定磁盘上文件的路径,以字节为单位检索文件大小的最常用方法是什么?
path = "/tmp/some_file.txt"
答案 0 :(得分:13)
这是通过利用stat
模块中的内置File
函数在Elixir中实现的;在这里,我将讨论两个:File.stat/2
和File.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