fileListDir
Version 23.4.8839
Version 23.4.8839
fileListDir
Lists the files and directories in the specified path.
Required Parameters
- path: The fully qualified path whose directories and files will be listed (for example,
/tmp/mydirectory
).
Optional Parameters
- mask: The pattern to use for filtering the result entries. The default is
*
. For example, a mask of*.json
matches all files with a.json
extension. - recurse: Whether to list entries recursively. The allowed values are
false
andtrue
. The default isfalse
. - fileordir: Whether to list only files or directories. The allowed values are
all
,files
, anddirs
. The default isall
.
Output Attributes
- file:fullname: The full path of the file or directory in the current entry.
- file:name: The name of the file or directory in the current entry.
- file:mtime: The time at which the file or directory in the current entry was written to.
- file:ctime: The time at which the file or directory in the current entry was created.
- file:atime: The time at which the file or directory in the current entry was last read from or written to.
- file:attributes: A list of attributes of the file or directory in the current entry.
- file:extension: The extension of the file in the current entry.
- file:size: The size of the file in bytes.
- file:isdir: Whether the entry is a file or directory.
Example
<!-- Setting the path to monitor on the input item -->
<arc:set attr="input.path" value="/tmp/timesensitive" />
<!-- Enabling recursion to check all subdirectories within the input path -->
<arc:set attr="input.recurse" value="true" />
<!-- Checking for files only, across all directories found by the operation -->
<arc:set attr="input.fileordir" value="files" />
<!-- Calling the operation and passing in the input item and setting an output item -->
<arc:call op="fileListDir" in="input" out="result" >
<!-- Executing an expression that checks each file creation date in each directory -->
<arc:if exp="[result.file:ctime | dateadd('day', 1) | datediff | lessthan(0)]" >
<!-- If it is older than 1 day, log an entry in the application log -->
<!-- This can be expanded to add more logic such as sending an email using appSendEmail -->
<arc:set attr="_log.info" value="The file [result.file:name] located at [result.file:fullname] has been idle within [input.path] for longer than 1 day." />
</arc:if>
</arc:call>