rasidrasid
Cadet 4th Year
- Registriert
- Apr. 2014
- Beiträge
- 70
Hallo,
ich will auf eine Datei vom Server warten bis sie lokal eintrifft (kopiert wird). Sie ist am Anfang nicht da. Das Programm das ich schreiben wollte, soll zu erst mal schauen ob die Datei da ist, wenn nicht, soll sie 5 min warten und dann wieder prüfen. Wenn sie nun da ist, kann sie ja gerade beim Kopieren sein, also müsste auf Vollständigkeit geprüft werden. Ich hatte es mal so geplant, aber es funktioniert nicht ganz richtig:
ich will auf eine Datei vom Server warten bis sie lokal eintrifft (kopiert wird). Sie ist am Anfang nicht da. Das Programm das ich schreiben wollte, soll zu erst mal schauen ob die Datei da ist, wenn nicht, soll sie 5 min warten und dann wieder prüfen. Wenn sie nun da ist, kann sie ja gerade beim Kopieren sein, also müsste auf Vollständigkeit geprüft werden. Ich hatte es mal so geplant, aber es funktioniert nicht ganz richtig:
Code:
struct stat odb_buff1, sta_buff1, log_buff1, dat_buff1, odb_buff2, sta_buff2, log_buff2, dat_buff2;
char* odb_File = (char*)tempFileodb.c_str();
char* dat_File = (char*)tempFiledat.c_str();
string modif_odb1 = ("a"), modif_sta1 = ("a"), modif_log1 = ("a"), modif_dat1 = ("a"), modif_odb2 = ("b"), modif_sta2 = ("b"), modif_log2 = ("b"), modif_dat2 = ("b");
int size_odb1 = 0, size_sta1 = 0, size_log1 = 0, size_dat1 = 0, size_odb2 = 1, size_sta2 = 1, size_log2 = 1, size_dat2 = 1;
while (!tempFileodb.c_str() && !tempFiledat.c_str()){ system ("sleep 300");}
while ((modif_odb1 != modif_odb2) && (modif_dat1 != modif_dat2) && (size_odb1 < size_odb2) && (size_dat1 < size_dat2)) {
stat (odb_File,&odb_buff1);
stat (dat_File,&dat_buff1);
size_odb1 = odb_buff1.st_size;//Dateigröße wird abgefragt
size_dat1 = dat_buff1.st_size;
modif_odb1 = ctime(&odb_buff1.st_mtime);//Dateizugriff-Modifikation wird abgefragt
modif_dat1 = ctime(&dat_buff1.st_mtime);
system ("sleep 30");//Dazwischen wird 2 min gewartet um noch mal abzufragen
stat (odb_File,&odb_buff2);
stat (dat_File,&dat_buff2);
size_odb2 = odb_buff2.st_size;//Dateigröße wird abgefragt
size_dat2 = dat_buff2.st_size;
modif_odb2 = ctime(&odb_buff2.st_mtime);//Dateizugriff-Modifikation wird abgefragt
modif_dat2 = ctime(&dat_buff2.st_mtime);
}
cout << " Dateien vollständig." << endl;
cout << endl;
[\code]
Danke