У меня есть каталог ( DIR_A ) для дампа с сервера A на сервер B, который, как ожидается, займет несколько недель. DIR_A имеет нормальную древовидную структуру, т. Е. Каталог может содержать подпапки или файлы и т. Д.
Цель: Поскольку DIR_A выгружается на сервер BМне придется пройти через DIR_A и найти в нем определенные файлы (не знаю точного имени каждого файла, потому что сервер А изменяет имена всех отправляемых файлов).Я не могу ждать недели, чтобы обработать некоторые файлы в DIR_A .Итак, я хочу начать манипулировать некоторыми файлами, как только получу их на сервере B.
Краткое описание: Сервер A отправляет DIR_A на сервер B. Предполагается, что он будет занятнедель.Я должен начать обработку файлов в точке B до завершения загрузки.
Попытка идеи: Я решил написать программу, в которой будет перечислено содержимое DIR_A .Я продолжал выяснять, существуют ли файлы в папках и подпапках DIR_A .Я подумал, что могу искать EOF файла в DIR_A .Если его нет, то файл еще не был полностью загружен.Я должен подождать, пока EOF не будет найден.Итак, я продолжаю цикл, вычисляя размер файла и проверяя, присутствует ли EOF.Если это так, то я начинаю обрабатывать этот файл.
Чтобы смоделировать вышесказанное, я решил написать и выполнить запись программы в текстовый файл, а затем остановил его посередине, не дожидаясь завершения.Я попытался использовать программу ниже, чтобы определить, можно ли найти EOF.Я предположил, что, поскольку я резко закончил запись программы в текстовый файл, eof не будет присутствовать, и поэтому вывод "EOF FOUND
" не должен быть достигнут.Я не прав, так как это было достигнуто.Я также пытался с feof () и fseek ().
std::ifstream file(name_of_file.c_str, std::ios::binary);
//go to the end of the file to determine eof
char character;
file.seekg(0, ios::end);
while(!file.eof()){
file.read(character, sizeof(char));
}
file.close();
std::cout << "EOF FOUND" << std::endl
Может ли кто-нибудь дать представление о том, был ли файл полностью записан или нет?
Спасибо