Прикольный баг с MoveFile/CopyFile. Требовалось скопировать файл (текущий exe) и запустить его. При копировании файла в директорию с большим числом файлов (MoveFile юзает FindFirstFile/FindNextFile) он создавался с вероятностью 5%. Такое впечатление что после завершения функции в которой юзается MoveFile, запрос отменялся. В итоге после вызова MoveFile добавил цикл вида while (GetFileAttributes(szFile) == -1UL) {Sleep(500);} и все заработало. Неужели MoveFile создает паралельный поток? Как такое объяснить, ведь это не нормально. - на XP SP2
да. там вроде создаецо поток. в MoveFileWithProgress варианте ф-ии, даже колбек можно ставить для получения прогресса выполнения..
Тогда уж Код (Text): while (CloseHandle(CreateFile(..., 0 /*share*/, ..., OPEN_EXISTING ,...))) Sleep(1); //для скорости Ведь файл большим может оказаться, и ты окажешься в этом месте ещё в момент записи (т.е. файл уже создан, но не записан до конца).
HoBleen Да. Так действительно лучше. Меня смутило то что о задержки создания в MSDN ни слова! Блин возращать TRUE когда результата еще нет... это в стиле MS. Еще бы так с левым пасом пропускали....