自習メモ〜ファイル入出力
公開されているpdfの続きで、今日はファイルの入出力。
徐々にAPIの利用がメインになってきたので、マニュアルとにらめっこしながら進めました。が、このマニュアル、javadocに慣れてると読みづらい。。。私だけですかね?
で、掲載されているfile01モジュールにfile:read_file_infoを使ってファイルの情報を出力する関数を追加してみようと、マニュアルと格闘すること1時間。。。ようやくその方法が判明 orz
-module(file01). -export([get_file_contents/1, get_file_info/1]). % FileInfo is a record file_info, defined in the Kernel % include file file.hrl. Include the following directive % in the module from which the function is called: % % -include_lib("kernel/include/file.hrl"). % -include_lib("kernel\\include\\file.hrl"). get_file_contents(File) -> {ok, Binary} = file:read_file(File), binary_to_list(Binary). get_file_info(File) -> {ok, FileInfo} = file:read_file_info(File), io:format("size:~p~nlast access:~p~nmode: ~p~n", [FileInfo#file_info.size, FileInfo#file_info.atime, FileInfo#file_info.mode]).
出力は次のような感じです。
D:\home\shimooka\erlang>erl Eshell V5.5.4 (abort with ^G) 1> c(file01). {ok,file01} 2> file01:get_file_info(file01.erl). size:667 last access:{{2007,5,21},{0,23,47}} mode: 33206 ok 3>