【发布时间】:2013-09-21 22:52:01
【问题描述】:
在 Visual Studio 的 C++ 中,我尝试使用循环动态复制文件夹。为此,我使用sprintf 函数将文件夹更改如下:
char sourceName[1000];
char dstName[1000];
SHFILEOPSTRUCT sf;
memset(&sf, 0, sizeof(sf));
sf.hwnd = 0;
sf.wFunc = FO_COPY;
for (int i=1; i<100; i++)
{
sprintf(sourceName, "C://Samples//%d//",i);
sprintf(dstName, "U://NewData//%d//",i);
sf.pFrom = sourceName;
sf.pTo = dstName;
}
但是 sf.pFrom 和 sf.pTo 的行给出错误提示:
Error: a value of type "char*" cannot be assigned to an entity of type PCZZWSTR.
我尝试在声明它们时将 sourceName 和 dstName 更改为 PCZZWSTR 类型:
PCZZWSTR sourceName;
PCZZWSTR dstName;
但这一次 sprintf 函数不接受它们。那么有什么解决方案吗?提前致谢。
【问题讨论】:
-
您没有使用宽字符作为开始。你也没有双空终止它们。
-
@chris:我不完全理解。能否请您更深入地解释一下?
标签: c++ visual-c++ copy directory