Ich habe versucht, ein Programm zu machen, das Dateien über das Netzwerk kopiert, um Spielstände zwischen meinem PC und Notebook zu synchronisieren, wenn einer von ihnen aktualisiert. Das Problem ist, dass wenn ich das Programm laufen lasse, es einfach "kopiert" und nie endet. Jedoch, wenn ich es auf dem gleichen PC mit genau der gleichen Datei mache, tut es es sofort, ich habe auch versucht, einen TXT durch das Netzwerk zu senden, und es hat gut funktioniert. Irgendwelche Ideen? Hier ist mein Code:Kopieren von Dateien über das Netzwerk 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;
}
}
Vielleicht liegt das Problem in der Funktion copy_file? – Saustin
@Saustin Nicht sicher, aber ich denke, das kann std :: experimental :: filesystem sein. – Robinson