В программе, которую я пишу, есть функция, которая принимает все имена файлов из определенного каталога и помещает их в вектор, чтобы их можно было использовать позже в программе.Как удалить скрытые файлы из вектора имен файлов?
Однако это также захватывает любые скрытые файлы, которые находятся в папке. Я попытался просто удалить программу из файлов, начинающихся с «.», Но это не сработало в той папке, которую я тестировал (я все еще получаю «..», указанный в виде файла).
Вот часть кода:
while (handle != INVALID_HANDLE_VALUE)
{
filenameList.push_back(search_data.cFileName);
if (FindNextFile(handle, &search_data) == FALSE)
break;
}
//removes a lot of hidden files from the file list
for (int i = 0; i < filenameList.size(); i++)
{
string hiddenCheck = filenameList[i];
if (hiddenCheck[0] == '.')
{
filenameList.erase(filenameList.begin() + i);
i = 0;
}
Вы пробовали отладки кода , i. е. проверить, не работает ли обнаружение или стирание? –
'Я все еще получаю" .. ", указанный как файл' Это не скрытый файл, и это ожидаемое поведение. Просто отфильтруйте «..» самостоятельно (а также «.») (Нет, я ничего не знаю, начиная с точки, но только с самой точкой) – deviantfan
Скрытые файлы, о которых я говорю, начинаются с '.', например ".thumbs", ".dsstore" или ".bridge". Я пробовал различные способы поиска точки в начале имени файла, например, используя переменную char для поиска вместо строки, но никто не удалит все скрытые файлы. – penguin