Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
3-1108989684
Neznaika
2005-02-21 15:41
2005.03.20
"Переносимость" моего приложения


4-1107302590
Green_Templar
2005-02-02 03:03
2005.03.20
OpenPictureDialog


3-1108704613
h1der
2005-02-18 08:30
2005.03.20
Delphi изменяет заголовок таблицы FoxPro


1-1109931041
Cat
2005-03-04 13:10
2005.03.20
Надо открыть запрос, если он не пустой!


9-1103645931
Creep
2004-12-21 19:18
2005.03.20
OpenGL и mega1.1





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский