2009-07-01 10 views
9

Estoy tratando de escribir algo de contenido en un archivo usando el modo de agregar en erlang pero dando un error como argumento erróneo.Modo Erlang File Append

Syntax used: file:write_file("/tmp/test1.txt","Abhimanyu","append"). 
error:{error,badarg} 

gracias

Respuesta

7

Por "no crearlo si no existe" cuestión adicional, que tiene que ser más creativos utilizando algo como archivo: read_file_info:

case file:read_file_info(FileName) of 
     {ok, FileInfo} -> 
       file:write_file(FileName, "Abhimanyu", [append]); 
     {error, enoent} -> 
       % File doesn't exist 
       donothing 
end. 

La modalidad de apertura (o modo de escritura) creará el archivo si no existe ...

4

Creo que necesita:

file:write_file("/tmp/test1.txt", "Abhimanyu", [append]). 

Creo que también puede ser necesario para convertir los datos a un binario.

17

La función file:write_file espera que el último argumento sea una lista de atoms iso una cadena, por lo que el cambio de su implementación a file:write_file("/tmp/test1.txt","Abhimanyu", [append]). debería resolver su problema. Se pueden encontrar ejemplos adicionales en TrapExit.

+0

Gracias por la ayuda ... una cosa más que quiero saber es que no creará el archivo ... si no existe. – Abhimanyu