Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2010, 17:30   #1
Jim Becker
Новичок
Джуниор
 
Регистрация: 02.03.2010
Сообщений: 1
По умолчанию Обработка каждого файла из папки

Здравствуйте! Используется Visual Studio 2008, Win32 Project + Use MFC in a Static Library.
Для каждого файла с определенным расширением из заданной папки и всех вложенных в нее папок,
необходимо выполнить определенную функцию. Каким образом можно так сделать?
Грубо говоря, для всех текстовых документов *.txt из папки c:\patch\ добавить в ListBox имя каждого файла.
Заранее благодарю!
Jim Becker вне форума Ответить с цитированием
Старый 07.09.2010, 20:08   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Пример для Delphi подойдёт?
Если нет - приношу свои извинения. Когда написал ответ, не обратил внимание на требуемый язык...



Код:
// в uses добавить модуль Masks

procedure DirSearch(Dir: string; Mask : string; SL: TStrings);
var
  SearchRec: TSearchRec;
begin
  Dir := IncludeTrailingBackslash(Dir);

  if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
    repeat
      Application.ProcessMessages;

      if (SearchRec.Attr and faDirectory) <> 0 then begin
        if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
                DirSearch(Dir + SearchRec.name, Mask, sl)
      end
      else
        if MatchesMask(ExtractFileName(SearchRec.Name), Mask) then
          Sl.Add(Dir + SearchRec.Name);
    until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  DirSearch('c:\patch\', '*.TXT', ListBox1.Items);
end;

Последний раз редактировалось Serge_Bliznykov; 07.09.2010 в 20:11.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.09.2010, 22:26   #3
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

пишете процедуру- суть такова:

2 параметра: путь для поиска, маска для поиска

FindFirstFile ->задаете маску файла сначала *.* -> FindNextFile если нет файлов, то отпускаем хендл поиска FindClose и на выход, если есть -> если найденный объект директория, а не файл, то рекурсивно вызываете эту же процедуру, если файл, то сравниваете с маской искомых файлов -> подходит, тогда выводите где надо, не подходит, ищем далее

вот и все дела вообщем то..

/собственно на делфях вам то же самое и написали, только в коде уже/
Нет, ну правда..

Последний раз редактировалось yuran666666; 07.09.2010 в 22:28.
yuran666666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление файла excel из папки Utirka66 Microsoft Office Excel 3 25.02.2010 18:57
Перенос файла из одной папки в другую Amelie_L Microsoft Office Excel 6 29.01.2010 16:28
можно ли закрыть окно папки из bat-файла (explorer.exe)? alvazor Операционные системы общие вопросы 2 23.12.2009 17:05
проблема с открытием прикрепленного файла с расшаренной папки opel.omega Общие вопросы Delphi 1 29.01.2009 12:45