Как с помощью Delphi узнать название появившегося файла в указаной траектории.
|
Delphi
khvalera
Нифига не понял :) |
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; |
Delphi
Блин, что это еще за фигня RxFolderMonitor1Change. Очередной бестолковый компонент? Такого не знаю, пишите по человечески используя нечто постандартнее, тогда может помогу...
|
Delphi
Kuper Чего кипятимся?
khvalera В принципе я лично вижу два способа отслеживания создания файлов: регулярное перечитывание каталога и использование хуков. Если У Вас всё достаточно некритично по времени, первый вариант очень даже подойдёт, имхо. |
Delphi
Цитата:
создать поток и засобачить туда. hasherfrog виноват, сорвался :shuffle: |
Delphi
Отслеживание происходит с помощью компонента RxFolderMonitor1Change из библиотеки RX, это все работает, а вот по чему вместо названия файла в StatusBar выводится точка, я так и не выкупил.
FindFirst(path2+'*',faAnyFile,Names); StatusBar1.SimpleText:= (Names.Name); Что тут не так? |
Delphi
khvalera
Ну подумаем. Что меняется при создании нового файла? Правильно, "описание" директории тоже подновляется. Вы просто никогда на это в виндах не обращали внимания. А текущий каталог - это и есть "." (эээ, сылка на неё). Т.о. Ваш компонент всё правильно отслеживает, Folder как раз и изменяется (ну и файл, конечно, тоже). Может, попробуете RxFileMonitor1Change :)? А на самом деле проблему легко разрулить - пропускаёте точку, если встретите в FindFirst. |
Благодарю за помощь! Подскажите как пропустить точку, в FindFirst. :)
|
khvalera
:spy: Если FindFirst возвращает в Names.Name строку ".", делаем FindNext (или FindSecond, или FindAgain, не в курсе, чего там у Вас). |
Спасибо !!!
Первый FindNext показывает „..”, следующий название подкаталога, а следующий уже файл. Проще ничего нет? |
Цитата:
|
Кто работал с RxFolderMonitor?
Кто работал с RxFolderMonitor? Какого в 98й он выдает ошибку при вводе пути и активизации в Win2000 работает нормально?
Project * raised exception class EWin32Error with message Win32 Error. Code 87. |
Кто работал с RxFolderMonitor?
Цитата:
|
Тогда каким образом можно отследить появление файлов в указанной траектории? Компонент используется только для этой цели.
|
Я подозреваю, что в имплементейшене RxFolderMonitor используется API-функция FindFirstFileEx вместо FindFirstFile, если Вы требуете какие-то дополнительные аттрибуты файлов в поиске. А FindFirstFileEx не реализована в 95,98,me.
Вообще, я лично страшно не люблю использовать библиотеки с закрытым кодом, а в Delphi это сплошь и рядом. |
Та, что вы можете посоветовать? Может есть другие подобные компоненты?
|
Я уже преглагал - напишите свой. Я бы так и сделал. Извините, но в компонентах дельфи я как балерина в паровозах
|
Время: 13:17. |
Время: 13:17.
© OSzone.net 2001-