UNC 路径上的 VC++ Createprocess
Posted
技术标签:
【中文标题】UNC 路径上的 VC++ Createprocess【英文标题】:VC++ Createprocess on a UNC path 【发布时间】:2011-08-19 21:51:49 【问题描述】:我正在尝试使用 CreateProcess 运行应用程序。但是,它似乎不适用于 UNC 路径。我尝试添加很多反斜杠,但仍然无法正常工作。
有什么解决办法吗?
我尝试在命令行中运行该命令,但它给出了一个错误,提示 cmd 不支持 UNC 路径。
我不想映射 UNC 路径,因为那样应用程序就不能作为服务运行。
【问题讨论】:
请展示您尝试过的内容,否则无法为您提供帮助。 你试过把\\\\?\\ in
CreateProcess`。请提及您尝试过的代码!
抱歉耽搁了,但这是我尝试运行的命令 CreateProcess(""C:\Users\jvenkatraj\Documents\SQLite\Debug\zip.exe" -9 -q -g -u "\\\192.168.123.60\Backup\store\location1\50\f2\25\43\d8\88\b9\68\49\8d\2b\d0\08\9e\7e\df\z. zip" "\\\192.168.123.60\Backup\store\temp\SPD405.tmp\file_contents"")
【参考方案1】:
如果服务在启动时自动运行,请小心在服务中使用 UNC 路径。你的服务可能会在它可用之前尝试使用 UNC 路径,除非所有相关的网络服务都已经有时间启动,你可能需要设置对这些的依赖。
关于您的实际问题,CreateProcess
应该使用documentation 中特别提到的 UNC 路径,因此如果没有您的代码,很难确定,但我猜这是权限问题,并且用户服务正在运行的帐户,可能没有正确的权限。
【讨论】:
以上是关于UNC 路径上的 VC++ Createprocess的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 pushd 的情况下获取 UNC 路径上的文件大小?