fileListDir

Version 23.4.8843


fileListDir


列出指定路径中的文件和目录。

必需的参数

  • path: 将列出其目录和文件的完全限定路径(例如,/tmp/mydirectory)。

可选的参数

  • mask:用于过滤结果条目的模式。 默认为*。 例如,掩码*.json匹配所有具有.json扩展名的文件。
  • recurse:是否递归列出条目。 允许的值为falsetrue。 默认为 false
  • fileordir:是否仅列出文件或目录。 允许的值为allfilesdirs。 默认为all

输出属性

  • file:fullname: 当前条目中文件或目录的完整路径。
  • file:name: 当前条目中文件或目录的名称。
  • file:mtime: 当前条目中文件或目录的写入时间。
  • file:ctime: 当前条目中文件或目录的创建时间。
  • file:atime: 最近一次读取或写入当前条目中的文件或目录的时间。
  • file:attributes: 当前条目中文件或目录的属性列表。
  • file:extension: 条目的扩展名。
  • file:size: 文件大小,以字节为单位。
  • file:isdir: 条目是文件还是目录。

示例

<!-- 设置对输入项进行监听的路径 -->
<arc:set attr="input.path" value="/tmp/timesensitive" />
<!-- 启用递归检查输入路径内的所有子目录 -->
<arc:set attr="input.recurse" value="true" />
<!-- 仅检查操作找到的所有目录中的文件 -->
<arc:set attr="input.fileordir" value="files" />
<!-- 调用操作并传入输入项并设置输出项 -->
<arc:call op="fileListDir" in="input" out="result" >
  <!-- 执行一个表达式来检查每个目录中每个文件的创建日期 -->
  <arc:if exp="[result.file:ctime | dateadd('day', 1) | datediff | lessthan(0)]" >
    <!-- 如果超过 1 天,则在应用程序日志中记录一个条目 -->
    <!-- 可以扩展以添加更多逻辑,例如使用 appSendEmail 发送电子邮件 -->
    <arc:set attr="_log.info" value="位于 [result.file:fullname] 的文件 [result.file:name] 在 [input.path] 内闲置时间超过 1 天。" />
  </arc:if>
</arc:call>