Halcon make_dir 报错 Cannot create directory (Halcon错误代码:5282)

目录

概要

问题解释

解决方法 1

解决方法 2

补充

小结


概要

HALCON 的 make_dir 算子仅支持创建单层目录无法自动递归创建 “不存在的父目录 + 子目录”。

问题解释

你遇到的HALCON错误代码:5282的核心含义是:要创建的目录的父目录不存在

  • 当参数是'C:/Users/Ice/Desktop/文件夹'时,Desktop是已存在的父目录,因此能成功创建单层文件夹目录;
  • 当参数是'C:/Users/Ice/Desktop/文件夹/文件夹1'时,上层的 'C:/Users/Ice/Desktop/文件夹' 尚未创建(或确认是否已存在),make_dir 无法直接创建嵌套的第二层文件夹1,因此触发 5282 错误。

解决方法 1

手动逐层创建(适合固定路径),先创建上层目录 文件夹,再创建下层 文件夹1:

* 定义路径
ParentDir := 'C:/Users/10704/Desktop/文件夹'
TargetDir := 'C:/Users/10704/Desktop/文件夹/文件夹1'

* 第一步:创建父目录(先检查是否已存在,避免重复创建报错)
file_exists (ParentDir, ParentExists)
if (not ParentExists)
    make_dir(ParentDir)
endif

* 第二步:创建子目录
file_exists (TargetDir, TargetExists)
if (not TargetExists)
    make_dir(TargetDir)
endif

解决方法 2

调用系统命令(如 Windows 的 md 或者 mkdir )

* Windows系统:调用cmd创建多层目录
SystemCmd := 'md "C:/Users/Ice/Desktop/文件夹/文件夹1/文件夹11/文件夹111"'
system_call (SystemCmd)

或者

* Windows系统:调用cmd创建多层目录
SystemCmd := 'mkdir "C:/Users/Ice/Desktop/文件夹/文件夹1/文件夹11/文件夹111"'
system_call (SystemCmd)

补充

  1. 路径格式:HALCON 支持/(推荐)或转义的\\(如C:\\Users\\Ice\\Desktop\\文件夹),避免直接用单个\(会被识别为转义符);
  2. 权限问题:若仍报错,需检查 Windows 用户是否有该路径的 “写入 / 创建目录” 权限;

小结

HALCON的make_dir算子无法递归创建多级目录,当父目录不存在时会触发5282错误。

解决方法有两种:

        1)手动逐层创建,先检查并创建父目录再创建子目录

        2)调用系统命令(md/mkdir)直接创建多级目录

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值