我需要生产一个文件夹下所有文件的index。所以网上查了相关代码,自己修改了一下
#include <windows.h> #include <iostream> using namespace std; const size_t PATH = 1024; void visit(LPCTSTR lpszPath, size_t dep) { TCHAR szFind[PATH]; lstrcpy(szFind, lpszPath); if (szFind[lstrlen(szFind) - 1] != '\\') lstrcat(szFind, "\\"); WIN32_FIND_DATA wfd; HANDLE hFind = FindFirstFile(lstrcat(szFind, "*.*"), &wfd); if (hFind == INVALID_HANDLE_VALUE) return; do { if (wfd.cFileName[0] == '.') continue; for (size_t i = 0; i < dep; ++i) putchar('\t'); if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { printf("[%s]\n", wfd.cFileName); lstrcpy(szFind, lpszPath); if (szFind[lstrlen(szFind) - 1] != '\\') lstrcat(szFind, "\\"); visit(lstrcat(szFind, wfd.cFileName), dep + 1); } else printf("%s\n", wfd.cFileName); } while (FindNextFile(hFind, &wfd)); FindClose(hFind); }
|