如何使用代码检查特定文件的存在。例如, def var a as character。 a =“abc.p”检查文件存在正在进行中4GL
运行值(a)。 --->这里首先我想检查abc.p是否存在于工作区中。
如何使用代码检查特定文件的存在。例如, def var a as character。 a =“abc.p”检查文件存在正在进行中4GL
运行值(a)。 --->这里首先我想检查abc.p是否存在于工作区中。
您可以使用SEARCH功能。直接从在线手册获得:
搜索功能 搜索PROPATH环境变量中定义的目录和库以查找文件。 SEARCH函数返回文件的完整路径名,除非它在您当前的工作目录中找到。如果SEARCH未找到该文件,则返回未知值(?)。
语法
SEARCH (opsys-file)
OPSYS文件
字符表达式,其值是你要查找的文件的名称。该名称可以包含完整或部分目录路径。如果opsys-file是一个常量字符串,则必须将其用引号(“”)括起来。 opsys文件的值不得超过255个字符。
例子:
DEFINE VARIABLE cPgm AS CHARACTER NO-UNDO.
cPgm = "test.p".
IF SEARCH(cPgm) <> ? THEN
RUN VALUE(cPgm).
- 如果您提供一个完全合格的路径名,如果该文件存在搜索检查。在这种情况下,SEARCH不搜索PROPATH上的目录。
如果你不想使用PROPATH您可以使用文件-INFO系统句柄。
设置FILE-NAME后,可以检查FILE-TYPE是否存在。另请参阅FILE-INFO的进度帮助。
FILE-INFO:FILE-NAME = a.
IF FILE-INFO:FILE-TYPE MATCHES "*F*"
THEN RUN VALUE(FILE-INFO:FULL-PATHNAME).
我在这里有一个疑问。由于SEARCH()函数将搜索所有propath目录,因此会降低应用程序的性能。如果我们给我们准确的目录路径,我们可以使用搜索功能在特定的目录中搜索,还是有其他方法可以做到这一点? –
从文档:“如果您提供一个完全合格的路径名,SEARCH将检查文件是否存在,在这种情况下,SEARCH不会搜索PROPATH上的目录。” – Jensd