У меня есть программа для чтения имен файлов в каталоге.Код выполняется в среде IDE CodeBlocks, но при запуске в Visual Studio возникает ошибка подтверждения отладки.
Я добавил _CRT_SECURE_NO_WARNINGS в Свойства препроцессора потому что без него strerror () дал мне ошибку.
#include <windows.h>
#include <stdio.h>
void listdirs(wchar_t *dir, wchar_t *mask)
{
wchar_t *fspec1 = { L'\0' }, *fname = { L'\0' };
WIN32_FIND_DATA dta;
HANDLE hDta;
DWORD dLastError;
LPCWSTR fspec = reinterpret_cast<LPCWSTR>(fspec1);
char *buff = { '\0' };
swprintf(fspec1, 100, L"%s/%s", dir, mask);
if ((hDta = FindFirstFile(fspec, &dta)) == INVALID_HANDLE_VALUE) {
dLastError = GetLastError();
printf("The error : %s\n", strerror(dLastError));
}
else {
do {
if (!(dta.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
printf("%ws\n", dta.cFileName);
}
else
{
if (wcscmp(dta.cFileName,L".") !=0 && wcscmp(dta.cFileName,L"..")!=0)
{
swprintf(fname, 100, L"%s", dta.cFileName);
listdirs(fname, mask);
}
}
} while (FindNextFile(hDta, &dta));
FindClose(hDta);
}
}
int main (int argc, char *argv[])
{
listdirs(L"C:\\windows\\system32\\Tasks", L"\\.*");
return 0;
}
Вывод должен либо напечатать сообщение об ошибке, если он не может получить доступ к папке, либо напечатать имена файлов.В любом случае я получаю только ошибку подтверждения отладки.