Erlang Central

Difference between revisions of "File exist"

From ErlangCentral Wiki

(redo; add race-condition warning.)
(One intermediate revision by one user not shown)
Line 1:Line 1:
There are many ways to test if a file exists in Erlang. Here are some examples:
+
The function filelib:is_file/1 returns true if its argument refers to an existing file or directory. filelib:is_regular/1 more narrowly returns true on regular files.
 +
 
 
<code>
 
<code>
case filelib:is_regular(Name) of
+
assert_config(Filename) ->
true ->
+
     true = filelib:is_regular(Filename).
     io:format("File exist.\n");
+
 
false ->
+
    io:format("File dose not exist.\n")
+
end
+
 
</code>
 
</code>
 +
 +
Generally you should assume that files exist, are readable, etc. -- and gracefully handle your failures.  You'll have to do this second part ''anyway'', as e.g. a file can be deleted after assert_config/1 succeeds and before your read_config/1 tries to open it.
 +
 
[[Category:CookBook]] [[Category:FileRecipes]]
 
[[Category:CookBook]] [[Category:FileRecipes]]

Revision as of 20:09, 18 October 2009

The function filelib:is_file/1 returns true if its argument refers to an existing file or directory. filelib:is_regular/1 more narrowly returns true on regular files.

assert_config(Filename) ->
    true = filelib:is_regular(Filename).

Generally you should assume that files exist, are readable, etc. -- and gracefully handle your failures. You'll have to do this second part anyway, as e.g. a file can be deleted after assert_config/1 succeeds and before your read_config/1 tries to open it.