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

   2016-05-23 0
核心提示:这篇文章主要为大家详细介绍了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++遍历文件夹的相关操作,希望对大家的学习有所帮助。

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

点击排行