DirectoryOperation 目录操作工具

DirectoryOperation 算子用于进行文件夹的读写等操作。

type 功能
ReadDirectory 读取某一个文件夹下的所有子文件夹的名称,并以 StringList 的形式输出
MakeDirectory 给定名称或路径,创建一个文件夹
ClearDirectory 清空某个文件夹内的所有文件和子文件夹
LimitDirectory 约束文件夹的占用空间大小,如果超限则自动删除最旧的文件
(所有文件按照最后一次编辑的顺序排序)

ReadDirectory

将 DirectoryOperation 算子的 type 属性选择 ReadDirectory,用于读取某一个文件夹下的所有子文件夹的名称,并以 StringList 的形式输出。

算子参数

  • 父目录/parent_directory:所需读取子文件夹的父文件夹目录。

  • 倒序排列/reverse_order:是否逆序排列。

  • 目录列表/directory_list:设置曝光属性。打开后可用于与交互面板中输出工具——“表格”控件绑定。

    • icon_visOn 打开曝光

    • icon_visOff 关闭曝光

数据信号输入输出

说明:本算子仅需要初始化运行一次即可。

  • directory_list

    • 数据类型:StringList

    • 输出内容:所有子文件夹的名称

功能演示

使用 DirectoryOperation 算子type 属性中 ReadDirectory,读取 example_data 目录下的所有子文件夹的名称。

步骤1:算子准备

添加Trigger、DirectoryOperation 算子至算子图。

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → ReadDirectory

    • 父目录/parent_directory → icon_more→ 选择一个含有多个子文件夹的文件目录名 ( example_data )

    • 目录列表/directory_list → icon_visOn 曝光

步骤3:连接算子

File_DirectoryOperation_ReadDirectory_nodes

步骤4:运行算子

  1. 在 RVS 的交互面板拖出输出工具中“表格”并绑定 directory_list 参数。

  2. 打开 RVS 的运行按钮,触发 Trigger 算子。

运行结果

如下图所示,交互面板中显示 example_data 文件夹中所有子文件名。

File_DirectoryOperation_ReadDirectory_result

MakeDirectory

将 DirectoryOperation 算子的 type 属性选择 MakeDirectory,给定名称或路径,创建一个文件夹。

算子参数

  • directory_name:所需创建文件夹的名称。同数据输入端口的 directory_name 作用一致。当输入端口 directory_name 没有连接时,则必须给该参数赋值。当输入端口 directory_name 有连接时,则在执行算子后会自动将输入端口的数值覆盖该参数的值。

  • path_name:设置文件夹路径名称曝光属性。打开后则可用于与交互面板中的输出工具——“文本框”绑定。

    • icon_visOn 打开曝光

    • icon_visOff 关闭曝光

数据信号输入输出

输入:

  • parent_name

    • 数据类型:String

    • 输入内容:所需创建文件夹的父目录

    说明:该端口可以不用,因为directory_name本身也可以包含父目录

  • directory_name

    • 数据类型:String

    • 输入内容:所需创建文件夹的名称

    说明:一般可以通过 Emit 算子(String 模式)给出。

输出:

  • path_name

    • 数据类型:String

    • 输出内容:所创建的文件夹路径

功能演示

使用 DirectoryOperation 算子中 MakeDirectory,创建一个名为 test 的文件夹。

步骤1:算子准备

添加Trigger、DirectoryOperation 算子至算子图。

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → MakeDirectory

    • directory_name → test

    • path_name → icon_visOn曝光

步骤3:连接算子

File_DirectoryOperation_MakeDirectory_nodes

步骤4:运行算子

  1. 在 RVS 的交互面板拖出输出工具“文本框”控件并绑定 path_name 参数。

  2. 打开 RVS 的运行按钮,触发 Trigger 算子。

运行结果

  1. 结果如下图所示,交互面板中显示创建文件夹的名称。

File_DirectoryOperation_MakeDirectory_dashboard

  1. 创建的文件夹显示如下。

    File_DirectoryOperation_MakeDirectory_Directory

ClearDirectory

将 DirectoryOperation 算子的type属性选择 ClearDirectory,用于清空某个文件夹内的所有文件和子文件夹。

算子参数

  • path_name:所需清空内容的文件夹路径。同输入端口的path_name作用一致。当输入端口 path_name 没有连接时,则必须给该参数赋值。当输入端口path_name 有连接时,则在执行算子后会自动将输入端口的数值覆盖该参数的值。

数据信号输入输出

输入:

  • path_name

    • 数据类型:String

    • 输入内容:要清空内容的文件夹路径

功能演示

使用 DirectoryOperation 算子中 ClearDirectory 清空 test 文件夹下的所有文件和子文件夹。

步骤1:算子准备

添加Trigger、DirectoryOperation 算子至算子图。

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → ClearDirectory

    • path_name → icon_more→ 选择文件目录名( test )

步骤3:连接算子

File_DirectoryOperation_ClearDirectory_nodes

步骤4:运行算子

  1. 在test文件夹中放置一些文件和文件夹,如下图所示。

    File_DirectoryOperation_ClearDirectory_Directory

  2. 打开 RVS 的运行按钮,触发 Trigger 算子。

运行结果

结果如下图所示,文件夹 test 内的所有内容都被清空。

File_DirectoryOperation_MakeDirectory_Directory

LimitDirectory

将 DirectoryOperation 算子的 type 属性选择 LimitDirectory,用于约束文件夹的占用空间大小,如果超限则自动删除最旧的文件(所有文件按照最后一次编辑的顺序排序)。

算子参数

  • directory_name:文件夹地址。

  • limit_size_MB:文件夹的最大占用硬盘空间。单位:MB 。

功能演示

使用 DirectoryOperation 算子中 LimitDirectory,约束 test 文件夹的占用空间大小为1。

说明:案例中使用到 Emit、Timestamp、Emit_1 、Join 算子用于生成文件目录名/文件名.png。如 test/20230308141759451.png。

步骤1:算子准备

添加Trigger、Load、Save、Emit ( 2个)、Timestamp、Join、DirectoryOperation 算子至算子图。

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → LimitDirectory

    • directory_name → test

    • limit_size_MB → 1

  2. 设置 Emit 算子参数:

    • 算子名称 → Emit_Dir

    • 类型 → String

    • 字符串 → test/ (注意:反斜杠不可省略)

  3. 设置 Emit_1 算子参数:

    • 算子名称 → Emit_png

    • 类型 → String

    • 字符串 → .png

  4. 设置 join 算子参数:

    • 类型 → Image

    • 输入数量 → 3

  5. 设置 Load 算子参数:

    • 类型 → Image

    • 文件 → icon_more → 选择图像文件名 ( example_data/images/banana.png )

步骤3:连接算子

File_DirectoryOperation_LimitDirectory_nodes

步骤4:运行

打开 RVS 的运行按钮,多次触发 Trigger 算子。

运行结果

  1. 结果如下图所示,文件夹空间超限之前和超限之后的示例。可以发现触发超限之后,DirectoryOperation 算子会将文件夹内按最后一次编辑的时间顺序排序,依次将最旧的文件删除,直到满足空间尺寸限制为止。

    说明:文件名为文件生成时间。

    File_DirectoryOperation_LimitDirectory_result

  2. 当超限之后,日志视图中也会有相应的提示信息。

    File_DirectoryOperation_LimitDirectory_log