文件夹遍历文件列表

实在不知道该怎么起标题了,类似遍历一个文件夹然后获得该文件夹下的文件列表,可以随意切换文件目录,是个不是特别大的东西,本来是用在我们小组写的简易ftp服务器上的一个给客户端显示的一个小插件一样的东西?总之单拿出来应该没啥含量,调用了windows的一些API

头文件包的有些多了,有的没用,是之前自己的音乐播放器里面的带的东西。。。

  1 #include<iostream>
  2 #include<stdlib.h>
  3 #include<windows.h>
  4 #include<mmsystem.h>  
  5 #include<string>
  6 #include<time.h>
  7 #include<fstream>
  8 #include<stdio.h>
  9 #include<vector>
 10 #include<string>
 11 #pragma comment (lib, "winmm.lib")
 12 using namespace std;
 13 
 14 void MainMenu()
 15 {
 16     printf("请选择操作\n");
 17     printf("1.显示当前文件夹的所有文件\n");
 18     printf("2.返回上一级\n");
 19     printf("3.进入文件夹\n");
 20     printf("4.进入指定文件夹\n");
 21     printf("5.退出\n");
 22 }
 23 void ShowFileList(string filename)
 24 {
 25     WIN32_FIND_DATAA p;
 26     vector<string> filelist;
 27     HANDLE h = FindFirstFileA(filename.c_str(), &p);
 28     filelist.push_back(p.cFileName);
 29     while (FindNextFileA(h, &p))
 30     {
 31         filelist.push_back(p.cFileName);
 32         if (filelist.back() == "." || filelist.back() == "..")
 33         {
 34             filelist.pop_back();
 35         }
 36     }
 37     for (int i = 0; i < filelist.size(); i++)
 38     {
 39         cout << filelist[i] << endl;
 40     }
 41 }
 42 
 43 void ShowLastFileList(string & filepath)
 44 {
 45     string filepath2 = filepath;
 46     string tmp = "../";
 47     tmp += filepath2;
 48     filepath = tmp;
 49     ShowFileList(tmp);
 50 }
 51 void ShowSelectFileList(string filepath)
 52 {
 53     string yourchoose;
 54     cin >> yourchoose;
 55     yourchoose += '/';
 56     string filepath2 = filepath;
 57     yourchoose += filepath2;
 58     ShowFileList(yourchoose);
 59 }
 60 void case4(string filepath)
 61 {
 62     string filename;
 63     cin >> filename;
 64     filename += '/';
 65     filename += filepath;
 66     ShowFileList(filename);
 67 }
 68 int main()
 69 {
 70     string filepath;
 71     filepath = "*.*";
 72     string filePath = filepath;
 73     while (1)
 74     {
 75         system("CLS");
 76         MainMenu();
 77         int n;
 78         cin >> n;
 79         switch (n)
 80         {
 81         case 1:
 82             system("CLS");
 83             ShowFileList(filePath);
 84             system("pause");
 85             break;
 86         case 2:
 87             system("CLS");
 88             ShowLastFileList(filePath);
 89             system("pause");
 90             break;
 91         case 3:
 92             system("CLS");
 93             ShowSelectFileList(filePath);
 94             system("pause");
 95             break;
 96         case 4:
 97             system("CLS");
 98             case4(filepath);
 99             system("pause");
100             break;
101         case 5:
102             exit(0);
103             break;
104         default:
105             break;
106         }
107     }
108     return 0;
109 }

 

posted @ 2016-05-11 14:46  leno米雷  阅读(396)  评论(0编辑  收藏  举报