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

Вниз

проверка папки   Найти похожие ветки 

 
rosl   (2005-03-04 07:47) [0]

народ, подскажите
как сделать проверку каталога (например по нажатию кнопки)
если в папке есть файлы - выдать сообщение


 
Anatoly Podgoretsky ©   (2005-03-04 09:08) [1]

Какой из трех вопросов не понятен?


 
rosl   (2005-03-04 09:30) [2]

нужен небольшой пример
мне скидывали ответ на вопрос (но немного не то, что нужно)

просто в отдельный каталог бросают файлы для отправки по почте
вот я и хочу сделать прогу, которая бы выдавала сообщение о отм, что в этом каталоге появился файл. Мне нужен пример того, как проверить папку на наличие в ней файлов.


 
Fedia ©   (2005-03-04 09:36) [3]


function FileInDirectory(dir: string): Boolean;
var
 f: TSearchRec;
begin
 Result:=false;

 FindFirst(dir+"*.*", faAnyFile, f);

 while FindNext(f)=0 do
 if (f.Name<>"..") and (f.Attr <> faDirectory) then
 begin
   Result:=true;
   break;
 end;

 FindClose(f);
end;

Скорее всего вариант не лучший, но работает.


 
GLFox ©   (2005-03-04 09:39) [4]

Все просто: FindFirst, FindNext, FindClose. Смотришь FindNext-ом в нужной директории пока не появится что-нибудь кроме "." или "..".


 
Poirot ©   (2005-03-04 10:38) [5]

Fedia ©   (04.03.05 09:36) [3]
>>if (f.Name<>"..") and (f.Attr <> faDirectory) then
Учим матчасть - это не есть правильно - ошибка в двух местах ибо есть "." и папка может иметь аттрибут например скрытый:)
Лече помоему сделатьатрибут для поиска в FindFirst not faDirectory - хотя мб сть и сомнения:) тогда впринципе и не нать никаких проверок и циклов


 
Fedia ©   (2005-03-04 11:14) [6]

Poirot ©   (04.03.05 10:38) [5]
вариант с точкой в FindFirst(dir+"*.*", faAnyFile, f);
на счет скрытых папок, может, я и промахнулся. Завтра проверю.


 
Poirot ©   (2005-03-04 12:13) [7]

Хм.. интересный вериант точку игнорировать, но я всё-таки предлагаю проще намного:


function FileInDirectory(dir: string): Boolean;
var
f: TSearchRec;
begin
Result := FindFirst(dir+"*.*", not faDirectory, f) = 0;
FindClose(f);
end;


 
Fedia ©   (2005-03-04 23:56) [8]

Poirot ©   (04.03.05 12:13) [7]
Да, твой вариант намного лучше, а со скрытыми папками я на самом деле промахнулся.
Удивило только, что not faDirectory срабатывает. Хотя ответ в реализации функции FindFirst :)

PS. Дата рождения: 20.03.2004. Учимся составлять анкеты :)


 
Poirot ©   (2005-03-05 09:37) [9]

Fedia ©   (04.03.05 23:56) [8]
А зачем знать возраст:)) Чтоб не было соблазна подавить авторитетом на меня:) ГЫ:)))



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

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

Наверх




Память: 0.48 MB
Время: 0.033 c
3-1108978313
juice
2005-02-21 12:31
2005.03.20
Типа вычисляемое поле


3-1108632194
Rule
2005-02-17 12:23
2005.03.20
Странно необъяснимое поведение хранимой процедуры в Фаерберде ...


14-1109596953
Рулон Обоев
2005-02-28 16:22
2005.03.20
сравнение в С


3-1108633607
Tormoz
2005-02-17 12:46
2005.03.20
Контроль количества в складских операциях


4-1107780857
ANB
2005-02-07 15:54
2005.03.20
Сообщения для Control