我正在与一家公司合作,他们的程序是用古老的vb6编写的,经常更新,大多数客户从映射的网络驱动器运行可执行文件。这实际上有很少问题,其中最大的问题是自动更新。目前,更新程序(用c++编写)会将现有的exe重命名,然后下载并放置新版本到旧版本的位置。这通常可以正常工作,但在某些环境中会失败。
解决方案是运行来自Microsoft的此命令:
这个命令关闭所有网络文件的共享(好吧...大部分),然后更新程序可以替换exe文件。
解决方案是运行来自Microsoft的此命令:
for /f "skip=4 tokens=1" %a in ('net files') do net files %a /close
这个命令关闭所有网络文件的共享(好吧...大部分),然后更新程序可以替换exe文件。
在C++中,我可以使用System("");
函数来运行该命令,或者我可以重定向net files
的输出,并遍历结果查找特定的文件,然后运行net file /close
命令来关闭它们。但是,如果有类似于winapi函数的功能,则更可靠且更加安全。
是否有办法以编程方式查找所有网络共享文件并关闭相关文件?