ErlangでファイルのMD5計算
30分プログラム、その664。ErlangでファイルのMD5計算をやってみました。
本当は、md5ベースで重複ファイルの削除をするぜ、みたいなことをやりたかったんです。でも、特定ファイルのmd5を計算するだけで時間が立ってしまいました。特にio_lib:formatに渡す書式文字列が強敵でした。
使い方
1> md5:md5_file("foo.txt"). "1f83a7283ad5fdb12130895272bf4634"
ソースコード
-module(md5). -compile([export_all]). -import(file, [read_file/1]). hex(N)-> io_lib:format("~2.16.0b",[N]). md5_file(Filename)-> {ok,Data} = read_file(Filename), lists:flatten(lists:map(fun hex/1, binary_to_list(erlang:md5(Data)))).