C++ でディレクトリ内のすべてのファイル名を取得する方法
C++のファイルおよびディレクトリストリームを使用して、すべてのファイル名を取得できます。
#include <iostream>
#include <fstream>
#include <dirent.h>
#include <vector>
std::vector<std::string> getFilesInFolder(const std::string& folderPath) {
std::vector<std::string> fileNames;
DIR* dir;
struct dirent* entry;
if ((dir = opendir(folderPath.c_str())) != nullptr) {
while ((entry = readdir(dir)) != nullptr) {
if (entry->d_type == DT_REG) {
fileNames.push_back(entry->d_name);
}
}
closedir(dir);
}
return fileNames;
}
int main() {
std::string folderPath = "path/to/folder";
std::vector<std::string> files = getFilesInFolder(folderPath);
for (const std::string& file : files) {
std::cout << file << std::endl;
}
return 0;
}
getFilesInFolder関数では、指定したディレクトリ内のすべてのファイル名を取得し、それらを文字列ベクトルに格納するためにopendirとreaddirを使用しています。次に、main関数でgetFilesInFolder関数を呼び出してディレクトリ内のすべてのファイル名を取得し、ループを使用してそれぞれのファイル名を出力しています。
コード内のfolderPathは、ファイル名を取得するフォルダの実際のパスに置き換えてください。