Имеется проблема с получением списка файлов. Функция выполняется. Но на определенном моменте просто стопорится. И все.
int main(){
catalogs ctlss;
catalogs * ctls = &ctlss;
int length = 0;
int * len = &length;
STRSAFE_LPWSTR dir = L"C:";
toms t;
toms * tm = &t;
get_toms(tm);
for (int i = 0; i < t.length; i++) {
std::wcout << "CYCLE_DISK: " << t.names[i] << std::endl;
}
for (int i = 0; i < t.length; i++) {
get_paths_arguments(t.names[i], ctls, len);
}
for (int i = 0; i < ctls->length; i++) {
std::wcout << "LENGTH: " << ctls->length << std::endl;
std::wcout << ctls->catls[i].name;
std::wcout.flush();
}
}
int get_paths_arguments(STRSAFE_LPWSTR dir, catalogs * ctls, int *len)
{
WIN32_FIND_DATA ffd;
TCHAR szDir[MAX_PATH];
size_t length_of_arg;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwError = 0;
std::wcout << dir << std::endl;
StringCchLength(dir, MAX_PATH, &length_of_arg);
StringCchCopy(szDir, MAX_PATH, dir);
StringCchCat(szDir, MAX_PATH, TEXT("\\*"));
hFind = FindFirstFile(szDir, &ffd);
if (INVALID_HANDLE_VALUE == hFind)
{
return 1;
}
do
{
std::wcout << L"dir + cFileName: " <<std::wstring(dir) + std::wstring(ffd.cFileName) << std::endl;
try {
if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (!(std::wstring(L".") == std::wstring(ffd.cFileName)) && !(std::wstring(L"..") == std::wstring(ffd.cFileName))) {
std::wstring line = dir + std::wstring(L"\\") + std::wstring(ffd.cFileName);
std::wcout << L"DIR_LINE: " << line << std::endl;
STRSAFE_LPWSTR direct = dir + *ffd.cFileName;
get_paths_arguments((STRSAFE_LPWSTR)line.c_str(), ctls, len);
}
else {
}
}
else
{
ctls->catls[*len].name = std::wstring(dir) + std::wstring(L"\\") + std::wstring(ffd.cFileName);
*len = *len + 1;
ctls->length = *len;
}
}
catch (std::exception &e) {
std::wcout << L"EXCEPTION: " << e.what() << std::endl;
continue;
}
} while (FindNextFile(hFind, &ffd));
dwError = GetLastError();
FindClose(hFind);
return 0;
}
Задача состоит в том что бы получить рекурсивно все файлы и папки на диске. При этом некоторые строки даже не допечатываются до конца. Просто все останавливается и консоль ждет завершения процессов. И ничего больше не происходит. Подскажите пожалуйста, В чем может быть причина?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть массив объектов в формате jsonЧто то не могу запустить функцию удаления дубликатов объектов
Доброй ночиучу C++ файл компилируется но при запуске выкидывает это
Нужно, чтоб программа понимала, что пользователь вводит 01 или 02, а не 1 или 2
Доброго времени суток! есть файл который имеет структуру(ниже), надо считать данныеДо последней строки получается