arrdio循环创建文件夹踩坑

事情起因

我使用string.split(strs,"\n")分割字符串然后循环创建文件,结果只有最后一个文件才创建成功,
最后折腾了很久才用string.trim(str)对每个字符串处理才解决。

创建失败原因

文件名字符串里面有特殊符号导致创建失败

刚开始以为api有问题,后面使用Kernel32的api也有问题,好在里面有获取错误的接口
接口返回0000007B

错误代码 0x7B 对应于 ERROR_INVALID_NAME,表示传递给函数的文件、文件夹名称无效。这可能是由于文件夹名称中包含了不允许的字符,或者文件夹名称太长等原因导致的。请检查传递给 CreateDirectory 函数的文件夹名称,并确保它是有效的。

在 Windows 中,文件夹名称不能包含以下任何字符:

反斜杠 ()
正斜杠 (/)
冒号 (😃
星号 (*)
问号 (?)
双引号 (")
尖括号 (< and >)
竖线 (|)

排查代码

var dll=raw.loadDll("Kernel32.dll")
var mk=dll.api("CreateDirectory","int (ustring name,int handle)")
var glerror = dll.api("GetLastError","ustring ()")
function mdir(dirname){
	
	var rt=mk(dirname,0);
	if(rt==0){
		var emsg=glerror()
		console.log(emsg)
	}
	console.log(rt)
}
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值