Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

自習メモ〜ファイル入出力

公開されている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>