DirectoryOperation 目录操作工具

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

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

读取目录操作

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

算子参数

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

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

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

    • icon_visOn 打开曝光

    • icon_visOff 关闭曝光

数据信号输入输出

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

  • 目录列表

    • 数据类型:StringList

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

功能演示

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

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → 读取目录操作

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

    • 目录列表 → icon_visOn 曝光

步骤3:连接算子

image-20240923144842332

步骤4:运行算子

  1. 在 RVS 的交互面板拖出输出工具中表格并绑定目录列表参数。

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

运行结果

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

image-20240923150009487

创建目录

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

算子参数

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

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

    • icon_visOn 打开曝光

    • icon_visOff 关闭曝光

数据信号输入输出

输入:

  • parent_name

    • 数据类型:String

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

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

  • 目录名

    • 数据类型:String

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

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

输出:

  • 路径名

    • 数据类型:String

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

功能演示

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

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → 创建目录

    • 目录名 → test

    • 路径名 → icon_visOn曝光

步骤3:连接算子

image-20240923172102391

步骤4:运行算子

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

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

运行结果

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

image-20240923154543874

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

    File_DirectoryOperation_MakeDirectory_Directory

清除目录

将 DirectoryOperation 算子的类型属性选择 清除目录,用于清空某个文件夹内的所有文件和子文件夹。

算子参数

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

数据信号输入输出

输入:

  • 路径名

    • 数据类型:String

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

功能演示

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

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → 清除目录

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

步骤3:连接算子

image-20240923154909847

步骤4:运行算子

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

    File_DirectoryOperation_ClearDirectory_Directory

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

运行结果

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

File_DirectoryOperation_MakeDirectory_Directory

限制目录大小

将 DirectoryOperation 算子的类型属性选择 限制目录大小,用于约束文件夹的占用空间大小。根据限制策略,自动删除文件(所有文件按照最后一次编辑的时间顺序排序)。

算子参数

  • 限制策略

    • 基于文件大小:根据文件的大小来决定删除哪些文件。

      • 存储单位:用于指定限制大小的单位(MB、GB )。

      • 限制大小:文件夹的最大占用硬盘空间。

    • 基于子目录数量:根据子目录的数量来决定删除哪些文件。

      • 限制数量:允许的最大子目录数量。

    • 基于文件日期:根据文件的最后修改日期来决定删除哪些文件。

      • 时间单位:用于指定时间限制的单位( day、week、month )。

      • 限制时间:文件的最大保留时间。

  • 目录路径:文件夹的路径。

功能演示

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

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

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 DirectoryOperation 算子参数:

    • 类型 → 限制目录大小

    • 目录路径 → test

    • 存储单位 → MB

    • 限制大小 → 1

  2. 设置 Emit 算子参数:

    • 算子名称 → Emit_Dir

    • 类型 → 字符串

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

  3. 设置 Emit_1 算子参数:

    • 算子名称 → Emit_png

    • 类型 → 字符串

    • 字符串 → .png

  4. 设置 join 算子参数:

    • 类型 → 图像

    • 输入数量 → 3

  5. 设置 Load 算子参数:

    • 类型 → 图像

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

步骤3:连接算子

image-20240923165154718

步骤4:运行

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

运行结果

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

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

    image-20240923165333850

  2. 当没有超限时,日志视图中会有相应的提示信息,提示“无文件需删除”。

    image-20240923165435497

  3. 当超限之后,DirectoryOperation 算子会自动清理目录,并输出清理前后的目录大小。

    image-20240923165459912