Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi, компонент RxFolderMonitor (http://forum.oszone.net/showthread.php?t=29540)

khvalera 25-07-2004 00:43 204460

Как с помощью Delphi узнать название появившегося файла в указаной траектории.

JCooper 25-07-2004 13:25 204461

Delphi
 
khvalera
Нифига не понял :)

khvalera 25-07-2004 22:29 204462

Delphi
 
ПопробЫвал сделать так с помощью RxFolderMonitor1Change
проверку появления файла в коталоге, а с помощью FindFirst
узнаю название файла, вроде бы все ОК! но выводит в StatusBar
только ".". В чем дело? Что я не так делаю?
procedure TForm1.RxFolderMonitor1Change(Sender: TObject);
begin
FindFirst(path2+'*',faAnyFile,Names);
StatusBar1.SimpleText:= (Names.Name);
RenameFile(path2+'\*.*',path2+'\v'+Data+'.zzz');
end;

JCooper 25-07-2004 23:18 204463

Delphi
 
Блин, что это еще за фигня  RxFolderMonitor1Change. Очередной бестолковый компонент? Такого не знаю, пишите по человечески используя нечто постандартнее, тогда может помогу...

hasherfrog 26-07-2004 10:50 204464

Delphi
 
Kuper Чего кипятимся?
khvalera
В принципе я лично вижу два способа отслеживания создания файлов: регулярное перечитывание каталога и использование хуков. Если У Вас всё достаточно некритично по времени, первый вариант очень даже подойдёт, имхо.

JCooper 26-07-2004 13:28 204465

Delphi
 
Цитата:

регулярное перечитывание каталога
Можно это вставить в обработчик Applicattion.OnIdle или же
создать поток и засобачить туда.
hasherfrog виноват, сорвался :shuffle:

khvalera 26-07-2004 22:15 204466

Delphi
 
Отслеживание происходит с помощью компонента RxFolderMonitor1Change из библиотеки RX, это все работает, а вот по чему вместо названия файла в StatusBar выводится точка, я так и не выкупил.

FindFirst(path2+'*',faAnyFile,Names);
StatusBar1.SimpleText:= (Names.Name);

Что тут не так?

hasherfrog 27-07-2004 09:09 204467

Delphi
 
khvalera
Ну подумаем. Что меняется при создании нового файла? Правильно, "описание" директории тоже подновляется. Вы просто никогда на это в виндах не обращали внимания. А текущий каталог - это и есть "." (эээ, сылка на неё). Т.о. Ваш компонент всё правильно отслеживает, Folder как раз и изменяется (ну и файл, конечно, тоже). Может, попробуете RxFileMonitor1Change :)? А на самом деле проблему легко разрулить - пропускаёте точку, если встретите в FindFirst.

khvalera 27-07-2004 13:02 204468

Благодарю за помощь! Подскажите как пропустить точку, в FindFirst.  :)

hasherfrog 27-07-2004 13:38 204469

khvalera
:spy: Если FindFirst возвращает в Names.Name строку ".", делаем FindNext (или FindSecond, или FindAgain, не в курсе, чего там у Вас).

khvalera 28-07-2004 11:13 204470

Спасибо !!!
Первый FindNext  показывает „..”, следующий название подкаталога, а следующий уже файл. Проще ничего нет?

hasherfrog 28-07-2004 12:12 204471

Цитата:

следующий название подкаталога
Какого ещё подкаталога? Это уже похоже на работу самого обычного FindFirst/FindNext для какого-нибудь CFile или Win32API.

khvalera 02-08-2004 16:35 204472

Кто работал с RxFolderMonitor?  
 
Кто работал с RxFolderMonitor?  Какого в 98й он выдает ошибку при вводе пути и активизации в Win2000 работает нормально?
Project * raised exception class EWin32Error with message Win32 Error. Code 87.

hasherfrog 02-08-2004 16:55 204473

Кто работал с RxFolderMonitor?  
 
Цитата:

AL> Почему при попытке активировать rxFolderMonitor вылетает ошибка "Win32
AL> Error. Code 87. Параметр задан неверно"?
В свойстве Filter для W9x должно быть FALSE для fnLastAccess, fnCreation,
fnSecurity.

khvalera 04-08-2004 22:58 204474

Тогда каким образом можно отследить появление файлов в указанной траектории? Компонент используется только для этой цели.

hasherfrog 05-08-2004 12:26 204475

Я подозреваю, что в имплементейшене RxFolderMonitor используется API-функция FindFirstFileEx вместо FindFirstFile, если Вы требуете какие-то дополнительные аттрибуты файлов в поиске. А FindFirstFileEx не реализована в 95,98,me.
Вообще, я лично страшно не люблю использовать библиотеки с закрытым кодом, а в Delphi это сплошь и рядом.

khvalera 05-08-2004 19:48 204476

Та, что вы можете посоветовать? Может есть другие подобные компоненты?

hasherfrog 05-08-2004 20:01 204477

Я уже преглагал - напишите свой. Я бы так и сделал. Извините, но в компонентах дельфи я как балерина в паровозах


Время: 13:17.

Время: 13:17.
© OSzone.net 2001-