11
ディスク上のファイルへのパスを指定すると、ファイルサイズをバイト単位で取得する方法は何が最も慣れていますか?エリクシルのファイルのサイズはどうやって取得できますか?
path = "/tmp/some_file.txt"
ディスク上のファイルへのパスを指定すると、ファイルサイズをバイト単位で取得する方法は何が最も慣れていますか?エリクシルのファイルのサイズはどうやって取得できますか?
path = "/tmp/some_file.txt"
これはFile
モジュールに組み込みstat
機能を利用することによって、エリクサーで達成されます。ここでは、私は2つについて話します:File.stat/2
とFile.stat!/2
。
両方の関数は、 "value"の構造体を返します。パターンマッチングによって構造体を破棄し、ファイルサイズが含まれる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 :シンボリックリンクを扱うときに多少異なる扱いをする他の関数があります。 bout:File.lstat/2
& File.lstat!/2