2015-10-12 20 views

回答

12

這在藥劑通過利用File模塊在內置stat功能實現;在這裏,我會談談兩個: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 

NB :處理符號鏈接時還有其他函數的處理方式稍有不同,值得了解布特:File.lstat/2 & File.lstat!/2

相關問題