DirectoryOperation 目录操作工具
DirectoryOperation 算子用于进行文件夹的读写等操作。
type | 功能 |
---|---|
读取目录操作 | 读取某一个文件夹下的所有子文件夹的名称,并以 StringList 的形式输出 |
创建目录 | 给定名称或路径,创建一个文件夹 |
清除目录 | 清空某个文件夹内的所有文件和子文件夹 |
限制目录大小 | 约束文件夹的占用空间大小,如果超限则自动删除最旧的文件 (所有文件按照最后一次编辑的顺序排序) |
读取目录操作
将 DirectoryOperation 算子的类型
属性选择读取目录操作
,用于读取某一个文件夹下的所有子文件夹的名称,并以
StringList 的形式输出。
算子参数
-
父目录/parent_directory
:所需读取子文件夹的父文件夹目录。 -
倒序排列/reverse_order
:是否逆序排列。 -
目录列表/directory_list
:设置曝光属性。打开后可用于与交互面板中输出工具——“表格”控件绑定。-
打开曝光
-
关闭曝光
-
数据信号输入输出
说明:本算子仅需要初始化运行一次即可。
-
目录列表
:-
数据类型:StringList
-
输出内容:所有子文件夹的名称
-
功能演示
使用 DirectoryOperation 算子类型
属性中读取目录列表
,读取 example_data
目录下的所有子文件夹的名称。
步骤1:算子准备
添加Trigger、DirectoryOperation 算子至算子图。
步骤2:设置算子参数
-
设置 DirectoryOperation 算子参数:
-
类型 → 读取目录操作
-
父目录 → → 选择一个含有多个子文件夹的文件目录名 ( example_data )
-
目录列表 → 曝光
-
步骤3:连接算子
步骤4:运行算子
-
在 RVS 的交互面板拖出输出工具中
表格
并绑定目录列表
参数。 -
打开 RVS 的运行按钮,触发 Trigger 算子。
运行结果
如下图所示,交互面板中显示 example_data 文件夹中所有子文件名。
创建目录
将 DirectoryOperation 算子的类型
属性选择 创建目录
,给定名称或路径,创建一个文件夹。
算子参数
-
目录名
:所需创建文件夹的名称。同数据输入端口的目录名
作用一致。当输入端口目录名
没有连接时,则必须给该参数赋值。当输入端口目录名
有连接时,则在执行算子后会自动将输入端口的数值覆盖该参数的值。 -
路径名
:设置文件夹路径名称曝光属性。打开后则可用于与交互面板中的输出工具——“文本框”绑定。-
打开曝光
-
关闭曝光
-
数据信号输入输出
输入:
-
parent_name
:-
数据类型:String
-
输入内容:所需创建文件夹的父目录
说明:该端口可不用,因为目录名本身也可以包含父目录
-
-
目录名
:-
数据类型:String
-
输入内容:所需创建文件夹的名称
说明:一般可以通过 Emit 算子(字符串模式)给出。
-
输出:
-
路径名
:-
数据类型:String
-
输出内容:所创建的文件夹路径
-
功能演示
使用 DirectoryOperation 算子中 创建目录
,创建一个名为 test 的文件夹。
步骤1:算子准备
添加Trigger、DirectoryOperation 算子至算子图。
步骤2:设置算子参数
-
设置 DirectoryOperation 算子参数:
-
类型 → 创建目录
-
目录名 → test
-
路径名 → 曝光
-
步骤3:连接算子
步骤4:运行算子
-
在 RVS 的交互面板拖出输出工具“文本框”控件并绑定
路径名
参数。 -
打开 RVS 的运行按钮,触发 Trigger 算子。
运行结果
-
结果如下图所示,交互面板中显示创建文件夹的名称。
-
创建的文件夹显示如下。
清除目录
将 DirectoryOperation 算子的类型
属性选择 清除目录
,用于清空某个文件夹内的所有文件和子文件夹。
算子参数
-
路径名
:所需清空内容的文件夹路径。同输入端口的路径名
作用一致。当输入端口路径名
没有连接时,则必须给该参数赋值。当输入端口路径名
有连接时,则在执行算子后会自动将输入端口的数值覆盖该参数的值。
数据信号输入输出
输入:
-
路径名
:-
数据类型:String
-
输入内容:要清空内容的文件夹路径
-
功能演示
使用 DirectoryOperation 算子中 清除目录
清空 test 文件夹下的所有文件和子文件夹。
步骤1:算子准备
添加Trigger、DirectoryOperation 算子至算子图。
步骤2:设置算子参数
-
设置 DirectoryOperation 算子参数:
-
类型 → 清除目录
-
路径名 → → 选择文件目录名( test )
-
步骤3:连接算子
步骤4:运行算子
-
在test文件夹中放置一些文件和文件夹,如下图所示。
-
打开 RVS 的运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,文件夹 test 内的所有内容都被清空。
限制目录大小
将 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:设置算子参数
-
设置 DirectoryOperation 算子参数:
-
类型 → 限制目录大小
-
目录路径 → test
-
存储单位 → MB
-
限制大小 → 1
-
-
设置 Emit 算子参数:
-
算子名称 → Emit_Dir
-
类型 → 字符串
-
字符串 → test/ (注意:反斜杠不可省略)
-
-
设置 Emit_1 算子参数:
-
算子名称 → Emit_png
-
类型 → 字符串
-
字符串 → .png
-
-
设置 join 算子参数:
-
类型 → 图像
-
输入数量 → 3
-
-
设置 Load 算子参数:
-
类型 → 图像
-
文件 → → 选择图像文件名 ( example_data/images/banana.png )
-
步骤3:连接算子
步骤4:运行
打开 RVS 的运行按钮,多次触发 Trigger 算子。
运行结果
-
结果如下图所示,文件夹空间超限之前和超限之后的示例。可以发现触发超限之后,DirectoryOperation 算子会将文件夹内按最后一次编辑的时间顺序排序,依次将最旧的文件删除,直到满足空间尺寸限制为止。
说明:文件名为文件生成时间。
-
当没有超限时,日志视图中会有相应的提示信息,提示“无文件需删除”。
-
当超限之后,DirectoryOperation 算子会自动清理目录,并输出清理前后的目录大小。