【发布时间】:2011-08-17 20:12:36
【问题描述】:
我们有一个 Buffalo NAS 驱动器作为备份驱动器。
当我们将此驱动器映射为 B:\ 时,我们的备份应用程序似乎理解这一点并作为应用程序运行。
但是当作为服务运行时,它无法识别映射并崩溃。
我尝试将路径作为\\\192.168.x.x\Backups\ 作为备份路径,服务运行但随后许多子模块失败,因为它将\\\ 视为转义字符。
什么是解决方法,以便 Windows 服务可以看到映射的驱动器。
我正在尝试通过CreateProcess() 运行 zip.exe;
""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""
反斜杠与引号混淆。它是 WCHAR 类型,我不能将其更改为任何其他类型,否则我也必须在其他地方重新定义它。我应该使用多少个反斜杠?
【问题讨论】:
-
注意,您必须通过添加两个反斜杠来指定您的 UNC 路径:\\192.168.x.x\Backups。
-
我在问题中添加了两个反斜杠,但在我发布后,它只显示一个。让我更新我的问题
-
澄清一下,作为系统服务安装的备份应用程序是您自己的代码还是第三方应用程序?是这个应用程序在 zip.exe 上调用 CreateProcess 吗?
-
我在下面提出了另一个建议,但是如果你想修复 CreateProcess 问题,我建议你在调用 CreateProcess 之前弹出一个消息框,这样你就可以准确地看到字符串实际上是什么被传递给 zip.exe。可能只是将反斜杠放在正确的位置。
-
这是您认为您正在传递的字符串,但您是否确认过,即通过将其输出到消息框或文本文件?它在我看来也好像网站正在修改它,你真的在路径的开头有三个反斜杠吗?
标签: c++ windows service backup share