void C_IntegrityCheck::FindFile(char* rootDir) { char fname[256]; ZeroMemory(fname, 256); WIN32_FIND_DATA fd; ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); HANDLE hSearch; char filePathName[256]; char tmpPath[256]; ZeroMemory(filePathName, 256); ZeroMemory(tmpPath, 256); strcpy(filePathName, rootDir); BOOL bSearchFinished = FALSE; if (filePathName[strlen(filePathName)-1] != '//') { strcat(filePathName, "//"); } strcat(filePathName, "*.*"); hSearch = FindFirstFile(filePathName, &fd); if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..")) { strcpy(tmpPath, rootDir); strcat(tmpPath, "//"); strcat(tmpPath, fd.cFileName); FindFile(tmpPath); } else if (strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..")) { sprintf(fname, "%-50.50s", fd.cFileName); printf("%s/n", fname); } while (!bSearchFinished) { if (FindNextFile(hSearch,&fd)) { if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..")) { strcpy(tmpPath, rootDir); strcat(tmpPath, "//"); strcat(tmpPath, fd.cFileName); FindFile(tmpPath); } else if (strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..")) { sprintf(fname, "%-50.50s", fd.cFileName); printf("%s/n", fname); } } else { if (GetLastError() == ERROR_NO_MORE_FILES) bSearchFinished = TRUE; else bSearchFinished = TRUE; } } FindClose(hSearch); }