Try OpenEdge Now
skip to main content
ABL Reference
ABL Syntax Reference : OS-DELETE statement
 

OS-DELETE statement

Executes an operating system file or directory delete from within ABL. Can delete one or more files, a directory, or an entire directory branch.

Syntax

OS-DELETE
{ filename | VALUE ( expression ) }...
[ RECURSIVE ]
filename
The name of the files or directories to delete. If you specify a directory that is not empty, you must also specify the RECURSIVE option to delete both the files contained within the directory and the directory itself. The file or directory name can contain Unicode characters. See OpenEdge Development: Internationalizing Applications for more information about Unicode.
VALUE ( expression )
An expression that returns the name of the files or directories to delete. expression can contain constants, field names, and variable names. The file or directory name can contain Unicode characters.
RECURSIVE
Instructs OS-DELETE to delete all subdirectories of the directory named in filename, as well as the directory itself. Before a directory or subdirectory is deleted, its files are deleted.

Example

This procedure opens a dialog box that prompts the user to choose a file to delete, then uses the OS-DELETE statement to delete the file:
r-os-del.p
DEFINE VARIABLE filename  AS CHARACTER NO-UNDO.
DEFINE VARIABLE OKpressed AS LOGICAL   NO-UNDO INITIAL TRUE.

Main:
REPEAT:
SYSTEM-DIALOG GET-FILE filename
TITLE "Choose File to Delete"
MUST-EXIST
USE-FILENAME
UPDATE OKpressed.

IF OKpressed = FALSE THEN LEAVE Main.
  ELSE OS-DELETE VALUE(filename).
END.

Notes

*The filenames and directory names must conform to the naming conventions of the underlying operating system.
*If OS-DELETE encounters files or directories that are protected against deletes, it skips over them, generates an error code, but continues to delete any unprotected files and subdirectories that are specified. If several such files or directories are encountered, OS-ERROR returns information on the last error only. If a subdirectory cannot be deleted, then the named directory is not deleted.
*You cannot use wildcard characters to specify files or directories.
*Although an error can occur during execution of this statement, the statement does not generate an error message, raise an error condition, or affect the program's flow in any way. Check for an execution error by using the OS-ERROR function and evaluating the return.

See also

OS-ERROR function