Share via


FOPEN( ) Function

Opens a file for use with low-level file functions.

FOPEN(cFileName [, nAttribute])

Parameters

  • cFileName
    Specifies the name of the file to open. cFileName can include a path to open files in directories, folders, drives, or volumes not in the current Microsoft Visual FoxPro search path. If a path isn't included, Visual FoxPro searches for the file in the following locations:

    • Default directory

    • Path established with SET PATH

      Note

      Visual FoxPro will not recognize a path name properly if a disk or directory name contains an exclamation point (!).

  • nAttribute
    Specifies read/write privileges or a buffering scheme for the file you open. The following table lists each number you can include in nAttribute, and the read/write file privileges and buffering scheme it establishes.

    nAttribute

    Read/Write privileges

    Buffered/unbuffered

    0

    (Default) Read-only

    Buffered

    1

    Write-only

    Buffered

    2

    Read and Write

    Buffered

    10

    Read-only

    Unbuffered

    11

    Write-only

    Unbuffered

    12

    Read and Write

    Unbuffered

    If nAttribute isn't included, or if nAttribute evaluates to 0, the file is opened as read-only and is buffered.

    Note

    Visual FoxPro will not recognize a path name properly if a disk or directory name contains an exclamation point (!).

Remarks

If FOPEN( ) successfully opens the file, the file handle number of the file is returned. FOPEN( ) returns –1 if the file cannot be opened.

Tip

Assign the file handle number to a memory variable so you can access the file by the memory variable in other low-level file functions.

The following information about files opened with FOPEN( ) can be displayed or sent to a printer with DISPLAY STATUS or LIST STATUS.

  • Drive and directory or volume and folder, and file name

  • File handle number

  • File pointer position

  • Read/write attributes

Return Value

Numeric

Example

IF FILE('errors.txt')  && Does file exist? 
   gnErrFile = FOPEN('errors.txt',12)  && If so, open read/write
ELSE
   gnErrFile = FCREATE('errors.txt')  && If not, create it
ENDIF
IF gnErrFile < 0  && Check for error opening file
   WAIT 'Cannot open or create output file' WINDOW NOWAIT
ELSE  && If no error, write to file
   =FWRITE(gnErrFile, 'Error information to be written here')
ENDIF
=FCLOSE(gnErrFile)  && Close file
MODIFY FILE errors.txt NOWAIT  && Open file in edit window 

See Also

Reference

CLOSE Commands

FCHSIZE( ) Function

FCLOSE( ) Function

FCREATE( ) Function

FEOF( ) Function

FFLUSH( ) Function

FGETS( ) Function

FPUTS( ) Function

FREAD( ) Function

FSEEK( ) Function

FWRITE( ) Function

Other Resources

Functions

Language Reference (Visual FoxPro)