如何检入erlang - 如果文件是 - 那么不要写新文件

时间:2014-04-29 19:25:03

标签: file erlang

我的代码

save(Filename)->

  {ok, IoDevice} = file:open(Filename, [write, binary]),
  file:write_file(Filename, Data, [append]).

如何检查文件是否 - 然后不要写新文件。

如果文件不存在,则写一个新文件

3 个答案:

答案 0 :(得分:4)

如果您有一个名为x.xml的文件,则它存在:

1> filelib:is_regular("x.xml").
true

但是x2.xml不存在:

2> filelib:is_regular("x2.xml").
false

您也可以使用is_file,而不是希望它也为目录名返回true。

答案 1 :(得分:1)

  

The file is opened for writing. It is created if it does not exist. If the file exists, and if write is not combined with read, the file will be truncated.
     

追加

The file will be opened for writing, and it will be created if it does not exist. Every write operation to a file opened with append will take place at the end of the file.

请看这里:http://www.erlang.org/doc/man/file.html#open-2

您也可以使用此功能:

  

ensure_dir(姓名) - >好的{错误,原因}

     

类型:Name = filename_all()| dirname_all()Reason = file:posix()

     

ensure_dir / 1函数确保了所有父目录   给定文件或目录名称存在,尝试创建它们   必要的。

     

如果所有父目录已存在或可能存在,则返回ok   如果某个父目录不存在,则创建或{error,Reason}   并且由于某种原因无法创建。

答案 2 :(得分:0)

使用file:read_file_info(Filename)。如果它返回{error,enoent},则该文件不存在。有关详细信息,请参阅http://www.erlang.org/doc/man/file.html#read_file_info-1