Главная страница
    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.46 MB
Время: 0.029 c
14-1109735786
Чеширский_Кот
2005-03-02 06:56
2005.03.20
Кто поставил фингал Никите Михалкову?


1-1110273056
ser35
2005-03-08 12:10
2005.03.20
отображение даты


3-1108804828
saNat
2005-02-19 12:20
2005.03.20
Внедрение изображения в поле записи


1-1110327630
SkyRanger
2005-03-09 03:20
2005.03.20
Создание своих событий для класса


1-1109882200
Еще_Новичек
2005-03-03 23:36
2005.03.20
Помогите с программой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский