ファイル関連の処理を集めたユーティリティモジュール.
Copyright (c) 2013-2014 DWANGO Co., Ltd. All Rights Reserved.
close/1 | {error, _} が返ってきた時にエラーを発生させる版の file:close/1 です. |
delete_directory/2 | 指定ディレクトリを削除する. |
delete_if_exists/1 | ファイルを削除する. |
get_disk_usage/1 | 指定パスのディスク使用量を取得する. |
get_disk_usage_async/3 | 指定パスのディス使用量を非同期に取得する. |
make_temp_filepath/0 | Equivalent to make_temp_filepath(<<"">>). |
make_temp_filepath/1 | ユニークな一時ファイルパスを生成して返す. |
open/2 | {error, _} が返ってきた時にエラーを発生させる版の file:open/2 です. |
write/2 | {error, _} が返ってきた時にエラーを発生させる版の file:write/2 です. |
write_or_close/2 | {error, _} が返ってきた時にファイルを閉じてエラーを発生させる版の file:write/2 です. |
close(IoDevice::file:io_device()) -> ok
{error, _} が返ってきた時にエラーを発生させる版の file:close/1 です.
delete_directory(DirectoryPath::file:name_all(), Recursive::boolean()) -> ok | {error, Reason::term()}
指定ディレクトリを削除する.
Recursive
にtrue
が指定された場合は、ディレクトリの子要素を含めて再帰的に削除処理を実行する.
なお、指定ディレクトリが存在しない場合はok
が返される.
delete_if_exists(FilePath::file:name_all()) -> ok
ファイルを削除する. 失敗したらエラーが発生するが, ファイルがない時はエラーは起きず ok を返す.
(補足)file:delete はファイルがないと {error, enoent} を返すが, この関数はそのような場合何もしないで ok を返す.
get_disk_usage(Path::file:name_all()) -> {ok, UsageBytes::non_neg_integer()} | {error, Reason::term()}
指定パスのディスク使用量を取得する.
対象パスが存在しない場合は{ok, 0}
が返る.
get_disk_usage_async(Path::file:name_all(), Pid::pid(), Tag::term()) -> ok
指定パスのディス使用量を非同期に取得する.
容量取得処理が終了したタイミングでPid
プロセスに{Tag, get_disk_usage(Path)}
形式のメッセージが送信される.
make_temp_filepath() -> Path::binary()
Equivalent to make_temp_filepath(<<"">>)
.
make_temp_filepath(Prefix::binary()) -> Path::binary()
ユニークな一時ファイルパスを生成して返す.
生成されるパスの形式は/tmp/Prefix_ユニークな文字列
となる.
なお、この関数自体はファイルの作成を行わないため、以下のように一時ファイルパスの生成から、 実際のファイル作成までの間に、他のプロセスとの競合が発生する可能性があるので注意が必要.
%% 1] 一時ファイルパスを生成 (この時点ではユニーク)
> Path = make_temp_filepath().
%% 2] ここで他のプロセスが偶然同じファイル名を使用して file:write_file/2 を呼び出した
%% 3] Pathにデータを書き込み
=> 他のプロセスが書き込んだ内容を上書きしてしまう!
> file:write_file(Path, <<"data">>).
open(File::file:name_all(), Modes::[Mode]) -> file:io_device()
Mode = term()
{error, _} が返ってきた時にエラーを発生させる版の file:open/2 です.
write(IoDevice::file:io_device(), Bytes::iodata()) -> ok
{error, _} が返ってきた時にエラーを発生させる版の file:write/2 です.
write_or_close(IoDevice::file:io_device(), Bytes::iodata()) -> ok
{error, _} が返ってきた時にファイルを閉じてエラーを発生させる版の file:write/2 です.