![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить, есть ли файлы и каталоги в каталоге?
Mazenrat © (2002-09-28 15:40:00)Доброго времени суток.
Нужен пример проверки: есть ли файлы и каталоги в папке? Спасибо.
anatolyk (2002-09-30 12:53:00) [1]//я для себя писал нечто вроде ....
procedure TForm1.Directory(Root: String);
var
sr: TSearchRec;
FileAttrs, i, ipos: Integer;
S: String;
tmpStr: Pchar;
dir, base: String;
begin
ChDir(Root); //откуда начать
FileAttrs := faAnyFile;
if FindFirst("*.*", FileAttrs, sr) = 0 then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
if not((Sr.Name = ".") or (Sr.Name = "..")) then
if (sr.Attr and faDirectory) = faDirectory then //найден каталог?
begin
Directory(Root+ "\" + sr.Name); //Заходим в него (это типа рекурсивный вызов)
ChDir(".."); //и возвращаемся
end
else //если же это файл...
begin
//пишем, например в к.-нибудь файл
WriteLn(FileVar,Root + "\" + sr.Name);
Flush(FileVar);
end;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
pasha_golub (2002-09-28 18:49:00) [2]
> могут быть проблемы с обнаружением системных и скрытых объектов...
Для этого пиши FindFirst(DirPath,faAnyFile,SearchRec)
Poirot (2002-09-28 17:13:00) [3]Мне кажется вы мне чуть - чуть нагрубили!!!
самый простой способ
if FindFirst(DirPath+"\",$3f,S)<>0 then ShowMessage("Dir is empty");
но могут быть проблемы с обнаружением системных и скрытых объектов...
Mazenrat (2002-09-28 16:53:00) [4]Так понятнее... Нужно проверить пустой каталог или нет!
Poirot (2002-09-28 16:39:00) [5]Интересный вопрос!!! Его понять мона поразному!!!
Вам как конкретный или просто есть ли... ну ответы-то идентичны..
FindFirst, FindNext....
если второе, о смотри аттрибуты!!!