2015-10-12 6 views

Antwort

12

Dies wird in Elixir erreicht, indem die eingebauten stat Funktionen im File Modul verwendet; hier werde ich über zwei sprechen: File.stat/2 und .

Beide Funktionen geben eine %File.Stat{} Struktur für ihren "Wert" zurück, die wir dann durch Mustervergleich zerstören, um das Feld size, das die Dateigröße enthält, in Bytes zu extrahieren. Die Funktionen unterscheiden sich nur dadurch, dass sie 1) zurückgeben und 2) Ausnahmen behandeln (z. B. Datei nicht gefunden).

Für Kontrollen Dateigröße, die Ausnahmen auslösen (File.Error):

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

Für Kontrollen Dateigröße, die Exceptions handhaben und geben einen Fehler zurück Tupel:

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

NB : Es gibt andere Funktionen, die beim Umgang mit Symlinks etwas anders umgehen und wissenswert sind ungefähr: File.lstat/2 & File.lstat!/2.

Verwandte Themen