📜  clarion 获取目录列表 (1)

📅  最后修改于: 2023-12-03 14:40:06.078000             🧑  作者: Mango

在 Clarion 中获取目录列表

Clarion 是一种快速应用程序开发工具,它可以帮助开发者快速构建 Windows 应用程序。在 Clarion 中,获取目录列表是一项常见的任务。本文将介绍如何使用 Clarion 获取目录列表。

使用文件名标号获取目录列表

可以使用文件名标号来获取当前目录中的文件列表。以下是示例代码:

Program
  MAP
  END

  DATA
  END

  CODE
  OPEN(FILENAME(''))
  LOOP
    IF ERRORCODE()
      BREAK
    END
    MESSAGE(FileName())
  END

上述代码将打开当前目录中的所有文件,并使用 MESSAGE 语句显示每个文件的名称。

使用 FindFirst 和 FindNext 函数获取目录列表

另一种获取目录列表的方法是使用 FindFirst 和 FindNext 函数。以下是示例代码:

Program
  MAP
  END

  DATA
    dirName     STRING(256)
    findDataPtr LONG
    findResult  LONG
  END

  CODE
  dirName = ''
  findDataPtr = 0
  LOOP
    findResult = FindFirst(dirName & '*.*', FIND_ATTRIBUTE_NORMAL, findDataPtr)
    IF findResult = 0
      MESSAGE(findDataPtr{FindData}.fileName)
    ELSE
      BREAK
    END
    findResult = FindNext(findDataPtr)
  END

上述代码将显示当前目录中的所有文件和文件夹的名称,但不会递归子目录。

使用 GetFileList 函数获取目录列表

Clarion 还提供了一个名为 GetFileList 的函数,可以使用它来获取目录列表。以下是示例代码:

CONST
  MaxFiles  = 100

Program
  MAP
  END

  DATA
    files  ARRAY(MaxFiles, 256)
    count  LONG
    i      LONG
  END

  CODE
  count = GetFileList('', files)
  FOR i = 1 TO count
    MESSAGE(files{i})
  END

上述代码将获取当前目录中的所有文件和文件夹的名称,并使用 MESSAGE 语句显示每个文件的名称。

使用 GetFileList 函数的优点是它可以递归子目录。您可以将一个目录名称作为参数传递给它,以获取该目录及其子目录中的所有文件列表。

总结:

本文介绍了在 Clarion 中获取目录列表的三种方法:使用文件名标号、使用 FindFirst 和 FindNext 函数和使用 GetFileList 函数。您可以根据需要,选择适合您应用程序的方法。