i, ai essayé de faire un programme qui copie les fichiers via le réseau pour synchroniser les sauvegardes de jeu entre mon PC et ordinateur portable chaque fois que l'un d'eux mises à jour. Le problème est que quand je cours le programme il continue juste à "copier" et ne finit jamais. Cependant, si je le fais sur le même PC avec exactement le même fichier, il le fait instantanément, j'ai également essayé d'envoyer un txt à travers le réseau et cela a très bien fonctionné. Des idées? Voici mon code:Copie de fichiers à travers le réseau 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;
}
}
Peut-être que le problème est dans la fonction COPY_FILE? – Saustin
@Saustin Je ne suis pas sûr mais je pense que cela peut être std :: experimental :: filesystem. – Robinson