正在检查文件存在4GL

Nil*_*ate 3 progress-4gl openedge

如何使用代码检查特定文件的存在.例如.def var a as character.a ="abc.p"

运行值(a).--->首先我要检查工作区中是否存在abc.p.

Jen*_*nsd 6

您可以使用SEARCH功能.直接来自在线手册:

SEARCH函数 搜索PROPATH环境变量中定义的目录和库以查找文件.SEARCH函数返回文件的完整路径名,除非在当前工作目录中找到它.如果SEARCH找不到该文件,则返回Unknown值(?).

句法

SEARCH ( opsys-file ) 
Run Code Online (Sandbox Code Playgroud)

OPSYS文件

一个字符表达式,其值是您要查找的文件的名称.名称可以包括完整或部分目录路径.如果opsys-file是常量字符串,则必须用引号("")将其括起来.opsys-file的值不得超过255个字符.

例:

DEFINE VARIABLE cPgm AS CHARACTER   NO-UNDO.

cPgm = "test.p".

IF SEARCH(cPgm) <> ? THEN 
    RUN VALUE(cPgm).
Run Code Online (Sandbox Code Playgroud)
  • 如果提供完全限定的路径名​​,SEARCH将检查文件是否存在.在这种情况下,SEARCH不会搜索PROPATH上的目录.


Arn*_*nde 6

如果您不想使用propath,可以使用FILE-INFO系统句柄.

设置FILE-NAME后,您可以检查FILE-TYPE(如果存在).另请参阅FILE-INFO的Progress帮助.

FILE-INFO:FILE-NAME = a.
IF FILE-INFO:FILE-TYPE MATCHES "*F*"
THEN RUN VALUE(FILE-INFO:FULL-PATHNAME).
Run Code Online (Sandbox Code Playgroud)