Consultor Eletrônico



Kbase P81493: How to check if a given directory contains files of a given extension using 4GL?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/21/2004
Status: Unverified

GOAL:

How to check if a given directory contains files of a given extension using 4GL?

FIX:

One solution is to define a function that would return TRUE if such files exists and or FALSE otherwise as demonstrated in the following code:

FUNCTION fileExists RETURNS LOGICAL (
INPUT pcDiretoryName AS CHARACTER,
INPUT pcExtension AS CHARACTER
).

DEFINE VARIABLE cCurrentFileName AS CHARACTER NO-UNDO.
DEFINE VARIABLE cPattern AS CHARACTER NO-UNDO.
DEFINE VARIABLE lReuslt AS LOGICAL NO-UNDO.

ASSIGN
cPattern = "*~~." + pcExtension.

INPUT FROM OS-DIR(pcDiretoryName).
REPEAT:
IMPORT cCurrentFileName.
IF LENGTH(cCurrentFileName) < 3 THEN NEXT.
IF cCurrentFileName MATCHES cPattern THEN DO:
lReuslt = TRUE.
LEAVE.
END.
END.
RETURN lReuslt.
END FUNCTION.

DEFINE VARIABLE cDiretoryName AS CHARACTER NO-UNDO.
DEFINE VARIABLE cExistingFileExtension AS CHARACTER NO-UNDO.
DEFINE VARIABLE cNonExistingFileExtension AS CHARACTER NO-UNDO.

ASSIGN
cDiretoryName = "C:\WRK91D"
cExistingFileExtension = "txt"
cNonExistingFileExtension = "zyz".

MESSAGE fileExists(cDiretoryName, cExistingFileExtension) fileExists(cDiretoryName, cNonExistingFileExtension)
VIEW-AS ALERT-BOX INFO BUTTONS OK.