本文主要介绍在windows下遍历某个文件夹下的所有文件,并输出文件的完整路径。
/*
* 在WINDOWS中获取目录下的所有文件列表
*/
#include<iostream>
#include<windows.h>
#include<string>
#include<vector>
using namespace std;
void GetFileLists(vector<string>& filePathLists, const string& directory)
{
HANDLE handleDirectory;
WIN32_FIND_DATA fileData;
if ((handleDirectory = FindFirstFile((directory + "/*").c_str(), &fileData)) == INVALID_HANDLE_VALUE)
{
cout << "没有找到文件" << endl;
return;
}
do {
string fileName = fileData.cFileName;
string filePathName = directory + "/" + fileName;
bool isDirectory = (fileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;
if (isDirectory)
continue;
filePathLists.push_back(filePathName);
} while (FindNextFile(handleDirectory, &fileData));
FindClose(handleDirectory);
}
int main()
{
vector<string> filePathLists;
string directory = "F:/新建文件夹 (2)";
GetFileLists(filePathLists, directory);
for (int i = 0; i < filePathLists.size(); i++)
{
cout << filePathLists[i] << endl;
}
return 0;
}
目录“F:/新建文件夹 (2)”中的内容如图所示:
运行程序输出的结果为: