Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

CreateProcess+AssignFile   Найти похожие ветки 

 
TUser ©   (2004-07-11 08:33) [0]

Я запускаю внешнюю программу и получаю файл с ее рузультатами. Дальше я этот файл читаю. После CreateProcess написан WaitForSingleObject. Проблема в том, что файл появляется не сразу после окончания работаы внешней программы. Программа уже закончила работать, а файл становится видимым только через какое-то время. Если поставить while not FileExists(name) do sleep(5), то это тоже не спасает, FileExists видит такой файл, а при попытке сделать ему Reset получается I/O error 32. Спасает только просто sleep() с некоторым большим интервалом, но это плохо, т.к. необходимое значение такого интервала будет зависеть от конкретного компьютера и его загруженности другими приложениями. Как тут быть?


 
Anatoly Podgoretsky ©   (2004-07-11 10:39) [1]

Так ты тогда ошибку обрабатывай у Reset


 
Mim1 ©   (2004-07-11 11:18) [2]


>  Программа уже закончила работать, а файл становится видимым
> только через какое-то время


Полтергейст какой то :), врядли такое есть в реале, наверное дело в чем нибудь другом.


> Если поставить while not FileExists(name) do sleep(5), то
> это тоже не спасает, FileExists видит такой файл, а при
> попытке сделать ему Reset получается I/O error 32.


Может все таки программа не завершилась, или файл занят кем то еще?


 
TUser ©   (2004-07-11 11:59) [3]


> Полтергейст какой то :), врядли такое есть в реале, наверное
> дело в чем нибудь другом.

А посмотрите, когда файлы в Проводнике появляются - тоже ведь не сразу. А программа завершается - там WaitForSingleObject.

> Так ты тогда ошибку обрабатывай у Reset

Был у меня такой вариант.
     b:=false;
     repeat
        try
         reset(f);
         b:=true;
        except
        end;
     until b;

Но как-то выглядит подозрительно. Неужели нет чего-нибудь типа WaitForSingleObject, но так, чтобы ожидалось не окончание процесса, а появление эготового файла"?


 
Anatoly Podgoretsky ©   (2004-07-11 12:21) [4]

FindFirstChangeNotificationИ не путай появление файлов в проводнике, которое делается с задержкой, ты по попробуй нажать F5 и увидишь файлы, которые по твоему не появились


 
Mim1 ©   (2004-07-11 15:26) [5]

Появление файлов в проводнике не как ни связано с появлением их на диске.



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
8-1084273400
Макс (программер)
2004-05-11 15:03
2004.07.25
Управление для TV Tuner на BT878


1-1089203408
dosik
2004-07-07 16:30
2004.07.25
Двумерные массивы в испекторе объектов


8-1083924153
X-Disa
2004-05-07 14:02
2004.07.25
3D - фигуры


3-1088552573
Alexey Leonchik
2004-06-30 03:42
2004.07.25
Быстрый поиск по первым символам


1-1089737316
Prostoi
2004-07-13 20:48
2004.07.25
Как удалить каталог?