Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как узнать количество файлов в папке?


Автор: Mpak 1.10.2007, 23:13
Я создаю файлы, которые при определенном событии (в т.ч. выхода из программы) надо удалить. Имена известны по маске Temp0 Temp1 Temp2 и т.д. но их количество не постоянно. Как узнать текущее?

Автор: smoke_man 1.10.2007, 23:32
Используй функции FindFirst и FindNext. Привожу пример. В Edit вводишь например - c:\\test\\temp*.*  В Caption - кол -во найденных файлов по этой маске.

Автор: Klin 1.10.2007, 23:42
Можно через стандартные компоненты, но целесообразней через функции:

Код

/* получение путей к временным файлам */
void GetTempFiles(TStrings* List)
{
 TSearchRec sr; // начинаем поиск
 AnsiString path = ExtractFilePath (Application->ExeName); // путь к папке
 if (FindFirst(path+"*.TMP", faAnyFile, sr) == 0) // задаем условия
  do List->Add(path+sr.Name); while (FindNext(sr) == 0); // записываем, пока файлы не кончатся
 FindClose(sr); // завершаем поиск
}
//------------------------------------------------------------------------------------------------------
/* получение количества временных файлов */
int GetCountTF()
{
 TSearchRec sr; int Count = 0;
 AnsiString path = ExtractFilePath (Application->ExeName);
 if (FindFirst(path+"*.TMP", faAnyFile, sr) == 0)
  do Count++; while (FindNext(sr) == 0);
 FindClose(sr);
 return Count;
}
/------------------------------------------------------------------------------------------------------


Поиск введется в директории, указанной в path (по умолчанию текущая папка). Временным файлом считается любой файл с расширением  TMP.

Добавлено через 58 секунд
при необходимости функции можно объеденить

Автор: Mpak 2.10.2007, 13:14
Спасибо, уверен, что получится. *ушел пробовать*

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)