首页 > 编程 > C++ > 正文

C++遍历文件夹获取文件列表

2020-05-23 14:04:43
字体:
来源:转载
供稿:网友
这篇文章主要为大家详细介绍了C++遍历文件夹获取文件列表的相关资料,感兴趣的小伙伴们可以参考一下
 

本文实例类似遍历一个文件夹然后获得该文件夹下的文件列表,可以随意切换文件目录,本来是用在我们小组写的简易ftp服务器上的一个给客户端显示的一个小插件,总之单拿出来应该没啥含量,调用了windows的一些API。

实例代码:

#include<iostream>#include<stdlib.h>#include<windows.h>#include<fstream>#include<stdio.h>#include<vector>#include<string>#pragma comment (lib, "winmm.lib")using namespace std;void MainMenu(){  printf("请选择操作/n");  printf("1.显示当前文件夹的所有文件/n");  printf("2.返回上一级/n");  printf("3.进入文件夹/n");  printf("4.进入指定文件夹/n");  printf("5.退出/n");}void ShowFileList(string filename){  WIN32_FIND_DATAA p;  vector<string> filelist;  HANDLE h = FindFirstFileA(filename.c_str(), &p);  filelist.push_back(p.cFileName);  while (FindNextFileA(h, &p))  {    filelist.push_back(p.cFileName);    if (filelist.back() == "." || filelist.back() == "..")    {      filelist.pop_back();    }  }  for (int i = 0; i < filelist.size(); i++)  {    cout << filelist[i] << endl;  }}void ShowLastFileList(string & filepath){  string filepath2 = filepath;  string tmp = "../";  tmp += filepath2;  filepath = tmp;  ShowFileList(tmp);}void ShowSelectFileList(string filepath){  string yourchoose;  cin >> yourchoose;  yourchoose += '/';  string filepath2 = filepath;  yourchoose += filepath2;  ShowFileList(yourchoose);}void case4(string filepath){  string filename;  cin >> filename;  filename += '/';  filename += filepath;  ShowFileList(filename);}int main(){  string filepath;  filepath = "*.*";  string filePath = filepath;  while (1)  {    system("CLS");    MainMenu();    int n;    cin >> n;    switch (n)    {    case 1:      system("CLS");      ShowFileList(filePath);      system("pause");      break;    case 2:      system("CLS");      ShowLastFileList(filePath);      system("pause");      break;    case 3:      system("CLS");      ShowSelectFileList(filePath);      system("pause");      break;    case 4:      system("CLS");      case4(filepath);      system("pause");      break;    case 5:      exit(0);      break;    default:      break;    }  }  return 0;}

以上就是C++遍历文件夹的相关操作,希望对大家的学习有所帮助。



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表