Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Tilk
6 / 6 / 3
Регистрация: 13.03.2010
Сообщений: 79
#1

Ручная сортировка файлов по разрешениям - C++

18.01.2011, 16:51. Просмотров 825. Ответов 6
Метки нет (Все метки)

Всем добрый день.

Есть список файлов в текущей папке проекта, пытаюсь забить в vector<string> modelfiles только те, что с расширением .cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void L_CDialog::InitFileList()
{
    WIN32_FIND_DATA winFileData;
    HANDLE hFile;
    char szPath[MAX_PATH];
    modelfiles.clear();
    folders.clear();
    if(GetCurrentDirectory(sizeof(szPath),szPath))
    {
        lstrcat(szPath,"\\*.*");
        hFile = FindFirstFile(szPath,&winFileData);
        if (hFile!=INVALID_HANDLE_VALUE)
        {
            //Error
        }
        while (FindNextFile(hFile,&winFileData)!=0)
        {
            string temp(winFileData.cFileName);
 
            int a,b;
            a = temp.find(".cpp");
            b = temp.size() - 4;
            if(a == b)
                modelfiles.push_back(temp);   
        } 
        FindClose(hFile);
    }
}
В итоге после цикла вектор остается пустым несмотря на вот такой парадокс - метод push_back просто обязан был быть вызван, т.к. в отладке есть случаи, когда a == b (скриншот прилеплен).

Если же закомментить условие - в векторе появляются все без исключения файлы - т.е. метод push_back вызывается и корректно работает.
http://www.cyberforum.ru/cpp-beginners/thread131688.html
0
Миниатюры
Ручная сортировка файлов по разрешениям  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2011, 16:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ручная сортировка файлов по разрешениям (C++):

Сортировка файлов
Здравствуйте уважаемые форумчане)) С праздником Вас... Вот кто нибудь...

Копирование, сортировка файлов
Добрый день! У меня в папке много различных файлов необходимо, переместить или...

Сортировка каталогов и файлов
Нужно создать программу выполняющую сортировку каталогов и файлов различными...

Как выделяется память на стеке и на куче? Когда нужна ручная очистка?
Всем здрасьте. //1 char s = 's'; //2 char* ss = new char; Во втором...

Обработка и сортировка графических файлов
Создать программу для обработки и сортировки графических файлов_) Может есть...

6
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
18.01.2011, 17:07 #2
Цитата Сообщение от Tilk Посмотреть сообщение
lstrcat(szPath,"\\*.*");
А что бы сразу нужные файлы не искать?
C++
1
lstrcat(szPath,"\\*.cpp");
тогда и проверять больше ничего не прийдётся...
0
Tilk
6 / 6 / 3
Регистрация: 13.03.2010
Сообщений: 79
18.01.2011, 17:23  [ТС] #3
Работает... А таким способом можно распознать папку?
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
18.01.2011, 17:36 #4
Цитата Сообщение от Tilk Посмотреть сообщение
А таким способом можно распознать папку?
не-а... если только у папки расширения срр не будет... ищите все файлы, из них выбирайте папки и в папках ищите срр файлы...
0
Tilk
6 / 6 / 3
Регистрация: 13.03.2010
Сообщений: 79
18.01.2011, 17:49  [ТС] #5
А так можно?

C++
1
2
3
4
5
6
bool isFolder = true;
for(int i=0;i<temp.lenght;i++)
{
  if(temp.c_str()[i] == '.')
    isFolder = false;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
18.01.2011, 18:06 #6
Цитата Сообщение от Tilk Посмотреть сообщение
А так можно?
не, так лучше не делать - во-первых в имени папки вполне может быть точка, а во-вторых в структуре WIN32_FIND_DATA, указатель на объект которой принимает FindFirstFile()/FindNextFile(), есть специальное поле dwFileAttributes. Его и нужно проверять:
C
1
2
3
4
if ( winFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
  /* папка. ищем в ней вложенные папки, за тем файлы с расширением срр */
  ...
}
0
Tilk
6 / 6 / 3
Регистрация: 13.03.2010
Сообщений: 79
18.01.2011, 20:09  [ТС] #7
Огромное спасибо, Вы очень помогли!
0
18.01.2011, 20:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 20:09
Привет! Вот еще темы с решениями:

Сортировка файлов по дате изменения
Выводятся файлы на Listbox1 С++ listBox1-&gt;Items-&gt;Clear();...

Сортировка файлов в заданной папке
Здравствуйте, всем. Я новичек, пишу сейчас just for fun, и у меня появилась...

Сортировка Файлов формата Mp3
Друзья, сегодня наводил порядок на компьютере и обнаружил что у меня более 5к...

Перестановки, поиск, сортировка, слияние файлов
1. При запуске программы пользователь вводит целое число - размер перестановки....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru