lua判断目录是否存在

最近用lua,发现没有可以直接判断目录是否存在的函数,因此用了个取巧的方法

利用 os.execute("cd 目录") 来完成,通过返回值来判断,0为成功非0为失败

不过这样有一个最明显的问题,当目录不存在时,会有输出信息到控制台上,这个我不需要

因此需要做以下修改,将命令信息重定向为nul即可

命令的结果可以通过"%>"的形式来重定向输出,%表示文件描述符:1为标准输出stdout2为标准错误stderr

系统默认%值为1,"1>"也可以简写为">"

因此最终可能如同这样:

os.execute("cd \"目录\" >nul 2>nul")即可

贴段最终代码来看看

	if dir then
		-- 去掉尾部的"/",可能没有,但为了防止连接字符串出错,还是做一次判断
		dir = string.gsub(dir, "\\", "\\\\")
		dir = string.gsub(dir, "[/\\]*$", "")
		
		-- 判断目录是否存在,其中>nul和2>nul是将修改重定向到空,否则当目录不存在时,会有错误提示
		if os.execute("cd " .. "\"" .. dir .. "\" >nul 2>nul") == 0 then
			new_filename = dir .. "/" .. new_filename
		elseif os.execute("mkdir " .. "\"" .. dir .. "\" >nul 2>nul") == 0 then
			new_filename = dir .. "/" .. new_filename
		else
			print("指定的目录有问题,请重新指定")
			return
		end
	end




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值