我一直试图制作一个程序,通过网络复制文件,以便在我们的PC和笔记本之间同步游戏保存,只要其中一个更新。问题是当我运行程序时它只是“复制”而永远不会结束。但是,如果我在同一台PC上使用完全相同的文件,它立即执行,我也尝试通过网络发送一个文本,它工作得很好。有任何想法吗?这是我的代码:
void copyFile() {
char x;
path PC = "C:\\Users\\Luciano\\Documents\\Sports Interactive\\Football Manager Touch 2017\\games\\River.fmt";
path Notebook = "Z:\\games\\River.fmt";
std::time_t lastWriteTo=0, lastWriteFrom=0;
if(exists(PC)){lastWriteFrom = last_write_time(PC);}
if(exists(Notebook)){lastWriteTo = last_write_time(Notebook);}
if (lastWriteFrom > lastWriteTo || !exists(Notebook)) {
std::cout << "Hay que copiar de la PC a la notebook" << std::endl;
std::cout << "Copiar Archivo? Este es de :" << (file_size(PC)/1024)/1024 << " Mb (S/N)" << std::endl;
std::cin >> x;
switch (x) {
case 'S':
std::cout << "Copiando Archivo..." << std::endl;
try {
copy_file(PC, Notebook, copy_option::overwrite_if_exists);
}
catch (filesystem_error &e) {
std::cerr << e.what() << '\n';
}
break;
case 's':
std::cout << "Copiando Archivo..." << std::endl;
try {
copy_file(PC, Notebook, copy_option::overwrite_if_exists);
}
catch (filesystem_error &e) {
std::cerr << e.what() << '\n';
}
break;
default:
std::cout << "Se ha cancelado la copia del archivo" << std::endl;
break;
}
}
else if(lastWriteFrom < lastWriteTo || !exists(PC)){
std::cout << "Hay que copiar de la notebook a la PC" << std::endl;
std::cout << "Copiar Archivo? Este es de :"<< (file_size(PC) / 1024) / 1024 <<"(S/N)" << std::endl;
std::cin >> x;
switch (x) {
case 'S':
std::cout << "Copiando Archivo..." << std::endl;
try {
copy_file(Notebook, PC, copy_option::overwrite_if_exists);
}
catch (filesystem_error &e) {
std::cerr << e.what() << '\n';
}
break;
case 's':
std::cout << "Copiando Archivo..." << std::endl;
try {
copy_file(Notebook, PC, copy_option::overwrite_if_exists);
}
catch (filesystem_error &e) {
std::cerr << e.what() << '\n';
}
break;
default:
std::cout << "Se ha cancelado la copia del archivo" << std::endl;
break;
}
}else {
std::cout << "No es necesario la copia del archivo." << std::endl;
}
}
答案 0 :(得分:0)
它有很多可能的东西,如果没有更多的信息,你已经尝试过,这里有一些潜在的东西:
std::experimental::filesystem
。这是实验性的,可能需要使用一些非平凡的直觉。 你说它保持&#34;永远复制。&#34;有网络流量吗?使用Wireshark或资源管理器(如果是Windows 10,请查看任务管理器。)