我一直在试图制作一个程序,通过网络复制文件,以在我的电脑和笔记本电脑之间同步游戏保存,只要其中一个更新。问题是,当我运行该程序时,它只是保持“复制”,永远不会结束。但是,如果我在同一台电脑上使用完全相同的文件,它会立即执行此操作,但我也尝试通过网络发送一个txt文件,它工作得很好。有任何想法吗?这里是我的代码:通过网络复制文件C++
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;
}
}
也许问题是在copy_file函数? – Saustin
@Saustin不知道,但我认为这可能是std :: experimental :: filesystem。 – Robinson