读取Windows文件夹下面文件名

    技术2022-07-10  203

    在VS工程中添加lib文件名称比较麻烦,通过代码将需要的文件名保存在txt文件汇总; 在网上找到了一段代码,修改一下成功运行!

    // test_max.cpp : 定义控制台应用程序的入口点。 // //#include "stdafx.h" #include <windows.h> #include <Shlwapi.h> #include <iostream> #include <string> #include <vector> #include <fstream> #pragma comment(lib,"shlwapi.lib") //注意放置的位置 using namespace std; void findFile(string dir, vector<string> &vecstr) { WIN32_FIND_DATAA stFD; //存放文件信息的结构体 HANDLE h; string temp; temp = dir + "\\*"; h = FindFirstFileA(temp.c_str(), &stFD); //构建目录句柄 while (FindNextFileA(h, &stFD)) //提取目录句柄对应目录所包含的文件 { temp = dir + "\\" + stFD.cFileName; if (temp == dir + "\\..") //上一级路径 { continue; } //else if (PathIsDirectoryA(temp.c_str())) //包含子目录 //{ // findFile(temp); //递归调用 //} else { //cout << stFD.cFileName << endl; //打印文件名 vecstr.push_back(stFD.cFileName); } } return; } int main(void) { string dir; vector<string> vecstr; dir = "D:\\Program Files\\PCL 1.8.0\\3rdParty\\VTK\\lib"; findFile(dir, vecstr); ofstream file("file_out.txt", std::ifstream::out); for (int i = 1; i < vecstr.size(); i++) { if (0 == i % 2) continue; file << vecstr[i].c_str() << endl; } file.close(); system("pause"); return 0; }

    参考: 使用windows API函数获取目录下所有文件名—目录下文件的扫描和处理

    Processed: 0.054, SQL: 9