Проверка есть ли в паке файлы
Модератор: Модераторы
Проверка есть ли в паке файлы
Вот не обходимо написать софтину котарая будет проверять появились ли в папке файлы. С лазарусом столкнулся в первые не много раньше рботал с делфи. Подскажите как реализотать такую задачку
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Для винды:
посмотри в винде функцию - FindFirstChangeNotification
насколько помню - именно она возвращает тебе событие при изменении в заинтересованном каталоге. Всё делается точно также как в дельфи.
посмотри в винде функцию - FindFirstChangeNotification
насколько помню - именно она возвращает тебе событие при изменении в заинтересованном каталоге. Всё делается точно также как в дельфи.
pehser писал(а):Вот не обходимо написать софтину котарая будет проверять появились ли в папке файлы.
Можно реализовать используя подход, основанный на учете количества файлов (можно даже по типу).
Если папка пустая, то функция возвращает 0, иначе - число файлов соответствующих маске.
Код: Выделить всё
function GetFileCount(dir : string):integer;
var fs : TSearchRec;
begin
Result:=0;
if FindFirst(dir+'/*.*',faAnyFile-faDirectory-faVolumeID, fs)=0 then
repeat
inc(Result);
until FindNext(fs)<>0;
FindClose(fs);
end;Andreich писал(а):pehser писал(а):Вот не обходимо написать софтину котарая будет проверять появились ли в папке файлы.
Можно реализовать используя подход, основанный на учете количества файлов (можно даже по типу).
Если папка пустая, то функция возвращает 0, иначе - число файлов соответствующих маске.Код: Выделить всё
function GetFileCount(dir : string):integer;
var fs : TSearchRec;
begin
Result:=0;
if FindFirst(dir+'/*.*',faAnyFile-faDirectory-faVolumeID, fs)=0 then
repeat
inc(Result);
until FindNext(fs)<>0;
FindClose(fs);
end;
ругается на строку
FindClose(fs);
unit1.pas(65,15) Error: Incompatible type for arg no. 1: Got "TSearchRec", expected "LongWord"
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
pehser
Ругается на строку FindClose(fs);
Padre_Mortius
Нужно заменить FindClose(fs) на SysUtils.FindClose(fs)
А у меня и без замены работает! (сижу под Linux)
Ругается на строку FindClose(fs);
Padre_Mortius
Нужно заменить FindClose(fs) на SysUtils.FindClose(fs)
А у меня и без замены работает! (сижу под Linux)
Andreich
ну видемо нюанс из того что винда
ну видемо нюанс из того что винда
В модуле Windows тоже описана процедура FindClose() для WinAPIшного поиска файлов. В Linux такого модуля нет.
