2013-12-16 14 views

回答

5

您可以使用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上的目录。
+0

我在这里有一个疑问。由于SEARCH()函数将搜索所有propath目录,因此会降低应用程序的性能。如果我们给我们准确的目录路径,我们可以使用搜索功能在特定的目录中搜索,还是有其他方法可以做到这一点? –

+0

从文档:“如果您提供一个完全合格的路径名,SEARCH将检查文件是否存在,在这种情况下,SEARCH不会搜索PROPATH上的目录。” – Jensd

4

如果你不想使用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).