我想将文件复制到 C 中的本地网络。
我进行了搜索,但没有找到 C 版本
int _tmain(int argc, _TCHAR* argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if (!CreateProcess( L"C:\\Windows\\System32\\cmd.exe", L"C:\\Windows\\System32\\cmd.exe copy a.txt \\share\\4vlad\\b.txt", NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi) )
{
printf("Error %d",GetLastError());
}
_getch();
return 0;
}
但是这段代码不起作用。
有人能告诉我这段代码有什么问题吗?
谢谢!
最佳答案
您的目标路径中有不正确的转义序列。大多数网络共享将像 \\share\project\foo\data 一样进行访问,但在您的 C 版本中 \
是一个转义序列。要获取字符 \
,您需要两个 \\
标记。
所以:
\\
变为 \
\\\\
变为 \\
因此:
int _tmain(int argc, _TCHAR* argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if (!CreateProcess( L"C:\\Windows\\System32\\cmd.exe",
L"C:\\Windows\\System32\\cmd.exe copy a.txt \\\\share\\4vlad\\b.txt",
NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi) )
{
printf("Error %d",GetLastError());
}
_getch();
return 0;
}
关于使用cmd命令 'copy'在C中复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022191/