特定のディレクトリ内のすべてのファイルを一覧表示する 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;
}