带空格的系统复制文件

时间:2013-12-28 00:55:01

标签: c++ copy

通过在C ++中使用系统命令提示符复制,我无法执行命令,因为我的目录在两个字符之间有空格,' log'和'文件'。也许正则表达式可以帮助我解决这个问题。但我不知道如何做到这一点。

system("copy C:\users\person\log file C:\users\person\desktop")

2 个答案:

答案 0 :(得分:0)

system("copy \"C:\\users\\person\\log file\" C:\\users\\person\\desktop")

我没有测试过,但它应该有用。

答案 1 :(得分:0)

我相信@tabstop指的是“std::rename”,这是一个解决方案。只有在操作系统上有一个名为“copy”的命令时,复制文件的方式才有效。如果您要在iOS上运行此程序,则无法运行。

这是以C ++方式执行此操作的更好方法(从此处嫁接的解决方案:Copy a file in a sane, safe and efficient way)....

#include <fstream>

int main(char** argv, int argc) 
{
   std::ifstream  src("C:\\users\\person\\log file", std::ios::binary);
   std::ofstream  dst("C:\\users\\person\\desktop",   std::ios::binary);

   dst << src.rdbuf();
}

不要忘记额外的反斜杠。你需要它们,因为反斜杠是一个转义字符,可以打开或关闭功能(比如换行符的\ n)。