使用makeDir从字符串列表创建子目录时遇类型转换错误求助
问题分析与解决方案
错误原因
报错Unable to convert: "THUMBNAIL" to type: Float的核心问题:
- 调用
getSavePath时,若用户点击取消按钮,函数会返回0(Float类型)而非有效路径字符串。此时尝试将Float类型的0与字符串"\\" + i拼接,3ds Max会试图把字符串转为Float进行数值运算,触发类型转换错误。 - 直接用
+ "\\" +拼接路径存在隐患:如果_renderPath本身末尾已带反斜杠,会导致路径出现重复分隔符,可能引发后续问题。
修正代码
_renderPath = getSavePath -- 先确认用户选择了有效路径 if _renderPath != 0 do ( _dirNames = ["THUMBNAIL", "NORMALS", "WIREFRAMES"] for i in _dirNames do ( -- 使用pathConfig.appendPath安全拼接路径,自动处理分隔符 local fullDirPath = pathConfig.appendPath _renderPath i makeDir fullDirPath ) )
关键改进点
- 增加路径有效性判断:通过
if _renderPath != 0 do确保仅在用户选择有效路径时执行创建逻辑,避免类型错误。 - 使用官方路径拼接函数:
pathConfig.appendPath会自动处理Windows路径的\分隔符,无需手动拼接\\,同时避免重复分隔符问题。
内容的提问来源于stack exchange,提问作者Lucas Costanski
相关产品推荐
相关产品推荐

