Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Получить список файлов диска в WTL.  (Прочитано 9069 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« : 09-08-2011 15:35 » new

Прошу помощи с данной проблемой. Много всего прочел но никак не могу собрать это все в кучу - в голове каша. Итак, отступив от полемики изложу суть:  нужно создать приложение, которое получает список файлов с указанного диска (папки), список должен содержать 4-ре колонки: Имя_файла, Путь_к_файлу, Размер_файла, Дата_создания/модификации.
Буду благодарен за любую инфо!
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 09-08-2011 15:44 » 

Смотри FindFirstFile и затем дальше FindNextFile, FindClose.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #2 : 09-08-2011 15:52 » 

Мне нужно создать STL вектор, в который все это записывать, нужно сделать это отдельным потоком, что бы пользователю был доступен GUI во время выполнения. Обязательное условие: WinAPI использовать только для GUI, тем самым гарантировать кроссплатформеность. Файлы искать через boost::filesystem::basic_directory_iterator...

Добавлено через 1 минуту и 7 секунд:
Я этим с утра заморочен... Ничего не сделал вообще.... Голова уже не соображает С ума сойти...
« Последнее редактирование: 09-08-2011 15:53 от dark_rain » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 09-08-2011 16:02 » 

Там пример дан. Что сложного? Дай по форуму поиск, я как-то тут также выкладывал пример.

Добавлено через 3 минуты и 2 секунды:
Вот сам пример https://forum.shelek.ru/index.php/topic,4017.msg102584.html#msg102584
« Последнее редактирование: 09-08-2011 16:05 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #4 : 09-08-2011 16:06 » 

Скажи пожалуйста, в случае использования WTL как мне поместить какой-либо текст в окошко? Просто не могу понять саму концепцию использования WTL. Все делаеться в CurentProject.CPP или там только main, а весь код нужно писать в MainDlg.h?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 09-08-2011 16:12 » 

Насчет Boost сразу не заметил Улыбаюсь Но в документации тоже есть пример. http://www.boost.org/doc/libs/1_37_0/libs/filesystem/doc/index.htm
Код: (C++)
bool find_file( const path & dir_path,         // in this directory,
                const std::string & file_name, // search for this name,
                path & path_found )            // placing path here if found
{
  if ( !exists( dir_path ) ) return false;
  directory_iterator end_itr; // default construction yields past-the-end
  for ( directory_iterator itr( dir_path );
        itr != end_itr;
        ++itr )
  {
    if ( is_directory(itr->status()) )
    {
      if ( find_file( itr->path(), file_name, path_found ) ) return true;
    }
    else if ( itr->leaf() == file_name ) // see below
    {
      path_found = itr->path();
      return true;
    }
  }
  return false;
}
Отсюда переделать под свои нужды, я думаю не составит труда.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #6 : 09-08-2011 16:15 » 

Код:
#include <iostream>
#include <boost/filesystem.hpp>
using namespace boost::filesystem;

int main(int argc, char* argv[])
{
  if (argc < 2)
  {
    std::cout << "Usage: tut1 path\n";
    return 1;
  }
  std::cout << argv[1] << " " << file_size(argv[1]) << '\n';
  return 0;
}

Вот на сайте boost есть кусочек примера. Предположим, что я только что создал WTL Dialog-based и выполнил Build Solution, в результате чего появилось окошко с двумя кнопочками "ОК" и "Cencel" .Как мне сделать, что бы результат команды std::cout из вышепреведеного кода был в окошке?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 09-08-2011 16:19 » 

dark_rain, WTL я никогда не занимался. Но по логике других библиотек, разметить на форме компоненту Label и записывать в него свой текст. Как отображать, это уже проблемы самой компоненты.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #8 : 09-08-2011 16:43 » 

Ок, спасибо, уже разобрался!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines