Primero, para crear un archivo puedes utilizar FCREATE:
FCREATE(nombreDeArchivo [, nAtributoDeArchivo])
En nombreDeArchivo puedes colocar la ruta completa o la relativa al path que tengas establecido en el entorno. Si el archivo existe lo sobreescribe sin ningún tipo de warning. Devuelve el número para su manejo (handler) si no hubo ningún error. Si hubo algún error devuelve -1
Si no queres reemplazarlo, sino que queres agregar a uno creado anteriormente deberias utilizar la función FILE(nombreDeArchivo [,flag]) que devuelve .T. si el archivo existe o .F. en caso contrario. Si no existe lo creas con FCREATE y si existe lo abres con FOPEN:
FOPEN(nombreDeArchivo [, nAtributoDeArchivo])
También devuelve el handler o -1 en caso de error
Recuerda guardar el número manejo (handler) en una variable para poder utilizar el archivo abierto on otras funciones.
Para escribir en el archivo utiliza FWRITE, FPUTS y FSEEK
Consulta la ayuda del fox para obtener una info detallada de estas funciones.
Por ejemplo, para abrir el archivo "texto.txt" y escribir la cadena "cadena de texto" al final del archivo sería algo así (al archivo lo abre para lectura y escritura y sin uso de buffer):
LOCAL varHandler
IF FILE("texto.txt") THEN
varHandler = FOPEN("texto.txt",12)
ELSE
varHandler = FCREATE("texto.txt")
ENDIF
IF varHandler != -1 THEN
FSEEK(varHandler,0,2)
FPUTS(varHandler,"cadena de texto")
FCLOSE(varHandler)
ELSE
&& algún mensaje de error
ENDIF