我正在编写一个 C++ 控制台应用程序来列出给定目录中的所有文件。我的代码如下,但它总是返回“INVALID_HANDLE_TRUE”。我使用 windows.h 库并使用 WIN 32 FIND DATA 和 FindFirstFile 函数打开一个目录
谢谢!
#include <iostream>
#include <string>
#include <vector>
#include <windows.h>
using namespace std;
int getDirectory(const char *directory, vector<string> &files)
{
string storage;
WIN32_FIND_DATA fd;
HANDLE h = FindFirstFile((LPCWSTR)directory, &fd);
if (h == INVALID_HANDLE_VALUE)
{
cout << "Invalid handle for: " << directory;
return 0;
}
while(1){
cout << (fd.cFileName) ;
if (FindNextFile(h, &fd) == FALSE)
{
break;
}
}
return 1;
}
int main()
{
vector <string> files;
char *directory;
cout << "Directory: ";
// cin >> directory;
directory ="c:\\*.*";
cout << directory << endl;
getDirectory(directory, files);
for (unsigned int i = 0; i< files.size(); i++)
{
cout << files[i] << endl;
}
cin.ignore();
return 0;
}