Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

file exist check

Доброго всем времени суток!
Не подскажет ли кто как можно осуществить ожидание появления файла?
Что-то типа

do{
int f = open(filename,O_RDONLY);
while (f <= 0);

Но хотелось бы чего-нибудь оригинального и не столь загружающего
процессор. Может в Вынь NT/2000 есть какие-нибудь средства для этого?
Буду признателен за любую помощь.

Ответить   Thu, 19 Feb 2004 20:47:43 +0300 (#84515)

 

Ответы:

Обычно делают цикл поиска FindFirstFile'ом, чередуемого вызовами
Sleep(число_миллисекунд_ожидания)
Sleep передает управление системе - в результате разгружает процессор (или
можно таймер+невидимое окно+цикл обработки сообщений от таймера для окна)

К сож., не знаю (особо не исследовал и использовал универсальный метод для
любой Вынь)

Исходное сообщение От: "Pavel aka crazy" <vl***@m*****.ru>
Кому: "comp.soft.prog.prog" <philoso***@s*****.net>; <207775>
Отправлено: 19 февраля 2004 г. 20:47
Тема: file exist check

Номер выпуска : 2076
Возраст листа : 151 (дней)
Количество подписчиков : 392
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/84522
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "VladS" Thu, 19 Feb 2004 20:56:10 +0300 (#84522)

 

Для этого служит

FindFirstChangeNotification

Работает во всех Win32.
Но не очень хорошо в Win9x, если диск сетевой.

Номер выпуска : 2160
Возраст листа : 156 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/87636
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 20 Feb 2004 08:53:26 +0600 (#87636)

 

Здарова, Pavel aka crazy!

19 февраля 2004 г., четверг, 22:47:43, ты намылил:

Этот код оповестит о том что произошли изменения на диске в конкретной
папке:

type
TChangeThread = class(TThread)
private
procedure SyncronFiles;
protected
procedure Execute; override;
public
FWatchPath:string;
end;
var ChangeThread:TChangeThread;

...
ChangeThread:=TChangeThread.Create(true);
ChangeThread.FreeOnTerminate:=true;
ChangeThread.FWatchPath:=' Левый путь ';
ChangeThread.Resume;
...

...
procedure TChangeThread.SyncronFiles;
begin
// Тута чо-нить творим при изменениях на диске
end;

procedure TChangeThread.Execute;
var ChangeHandle:THandle;
tmpPath:string;
label Hole;
begin
ChangeHandle:=INVALID_HANDLE_VALUE;
Hole:
tmpPath:=FWatchPath;
if ChangeHandle<>INVALID_HANDLE_VALUE then FindCloseChangeNotification(ChangeHandle);
ChangeHandle:=FindFirstChangeNotification(PChar(FWatchPath),false,
FILE_NOTIFY_CHANGE_FILE_NAME or FILE_NOTIFY_CHANGE_DIR_NAME or
FILE_NOTIFY_CHANGE_LAST_WRITE); // Тута можно всякие
//проверочки настроить
while not Terminated do
begin
sleep(500); // не уверен надо ли это т.к. в функции
//WaitForSingleObject также используется какая-то задержка
//подробнее в хелпе, но т.к. там на ангельском то я не шибко
//захотел в суть вникать - работает и ладно
if FWatchPath<>tmpPath then GOTO hole;
if MAinForm.FLastPathIndex=0 then continue;
if ChangeHandle<>INVALID_HANDLE_VALUE then
if WaitForSingleObject(ChangeHandle,500)=WAIT_OBJECT_0 then
Synchronize(SyncronFiles);
FindNextChangeNotification(ChangeHandle);
end;
FindCloseChangeNotification(ChangeHandle);
end;
...

Ответить   Томилов Александр Fri, 20 Feb 2004 00:49:22 +0500 (#84727)

 

On Fri, Feb 20, 2004 at 12:49:22AM +0500, Томилов Александр wrote:

спасибо за код.

Ответить   Fri, 20 Feb 2004 19:50:04 +0300 (#85635)

 

Голубчик!
Каким образом ты вышел на мой почтовый ящик?
Меня не интересуют твои дурацкие проблемы с компьютерами и программами
АБСОЛЮТНО, но ты засоряешь мой ящик, и меня это страшно злит.
ОТВАЛИ!!!!!!!!!!!!!
Номер выпуска : 2099
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85824
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 20 Feb 2004 22:27:05 +0300 (#85824)

 

Голубчик!
Каким образом ты вышел на мой почтовый ящик?
Меня не интересуют твои дурацкие проблемы с компьютерами и программами
АБСОЛЮТНО, но ты засоряешь мой ящик, и меня это страшно злит.
ОТВАЛИ!!!!!!!!!!!!!
Номер выпуска : 2099
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85823
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 20 Feb 2004 22:26:39 +0300 (#85823)

 

Привет!
Не нашел точно. но есть API проверяющая было ли изменение файловой структуры
на нужном диске.
Может кто вспомнит.

С уважением monah
janal***@n*****.ru

Номер выпуска : 2090
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85663
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 20 Feb 2004 23:28:47 +0600 (#85663)

 

Голубчик!
Каким образом ты вышел на мой почтовый ящик?
Меня не интересуют твои дурацкие проблемы с компьютерами и программами
АБСОЛЮТНО, но ты засоряешь мой ящик, и меня это страшно злит.
ОТВАЛИ!!!!!!!!!!!!!
Номер выпуска : 2096
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85810
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 20 Feb 2004 22:27:13 +0300 (#85810)