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


Автор: JohnnyQ 28.4.2008, 11:33
А каким образом можно прочитать по очереди все файлы из папки?
примерный алгоритм: 
                                      while(пока есть файлы в папке)
                                              {
                                                  (функция работы с файлом)
                                                   (переход на след. файл)
                                              }

Автор: knut 28.4.2008, 11:45
если я вас правелнно понял то вам нужно 
FindFirstFile, FindNextFile.. а вот потом как нашли все файлы в директориях open и fread.
если я вы это имели ввиду то вам в соседний разделsmile

Автор: threef 28.4.2008, 11:49
в MSC:
Код

...
while( ! _findnext( handle_code, &FINDDATA_T_STRUCT)
{
   puts(FINDDATA_T_STRUCT.name);
}
...


подробности - _find,_wfind Function(MSDN)

Автор: warmonger_ 28.4.2008, 13:34
Цитата(JohnnyQ @  28.4.2008,  10:33 Найти цитируемый пост)
А каким образом можно прочитать по очереди все файлы из папки?

зависит от OS

Автор: JackYF 28.4.2008, 17:20
boost::filesystem можешь глянуть

Автор: JohnnyQ 30.4.2008, 00:39
Цитата(warmonger_ @ 28.4.2008,  13:34)
Цитата(JohnnyQ @  28.4.2008,  10:33 Найти цитируемый пост)
А каким образом можно прочитать по очереди все файлы из папки?

зависит от OS

Ос Windows

Спасибо всем за ответы. Попробую реализовать то, что посоветовали smile 

Автор: TaNK 30.4.2008, 09:14
Цитата(JohnnyQ @ 28.4.2008,  11:33)
А каким образом можно прочитать по очереди все файлы из папки?
примерный алгоритм: 
                                      while(пока есть файлы в папке)
                                              {
                                                  (функция работы с файлом)
                                                   (переход на след. файл)
                                              }

Код

TSearchRec inf;
if(FindFirst("Report\\*txt*"faAnyFile,inf)==0)
       {
        do
           {
             // делаем что надо
           }

        while(FindNext(inf)==0);
       }
   FindClose(inf);

может так?

Автор: Deft 8.5.2009, 08:32
+как читать файлы только с определенным расширением, на пример *.xls и при этом читать файлы из папки включая подкаталоги.
если расширение прописать сразу вместе с путем  то подкаталоги будут игнорироваться из-за названия даже без учета того что в атрибутах прописано чтоб и подкаталоги включались, а если расширение в путе не указывать то потом не понятно как фильтровать?
не считывать же все имя файла циклом в чар массив... это долго все будет при большом количестве файлов помоему..
(вообще-то мне с этим в раздел билдера надо, ибо пишу на билдере, но думаю конкретно этот вопрос будет практически идентичен, точнее решение, поэтому чтобы дубли не создавать спросил тут...)

Автор: Deft 8.5.2009, 11:16
фуф, разобралсо =)

Автор: Alca 8.5.2009, 11:30
http://msdn.microsoft.com/en-us/library/aa365200(VS.85).aspx

Автор: andrew_121 8.5.2009, 12:01
Цитата(knut @  28.4.2008,  11:45 Найти цитируемый пост)
а вот потом как нашли все файлы в директориях open и fread.

Позвольте не согласитьса.
Либо: fopen() и fread().
Либо: open() и read().
 smile 

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