windows下C++打开某文件夹下的全部文件的文件名的开源代码

#include<iostream>
#include<string>
#include<vector>

#include<fstream>

#include"output.h"
#include"Delaunay.h"
#include"c2dtriangle.h"
#include<iomanip>

using namespace std;

#include <io.h>
#include <fstream>
#include <string>
#include <vector>
#include <iostream>
using namespace std;


//获取所有的文件名
void GetAllFiles(string path, vector<string>& files)
{
     
    long long hFile = 0;
    //文件信息  
    struct _finddata_t fileinfo;
    string p;
    if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1)
    {
        do
        {
            if ((fileinfo.attrib & _A_SUBDIR))
            {
                if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
                {
                    files.push_back(p.assign(path).append("\\").append(fileinfo.name));
                    GetAllFiles(p.assign(path).append("\\").append(fileinfo.name), files);
                }
            }
            else
            {
                files.push_back(p.assign(path).append("\\").append(fileinfo.name));
            }

        } while (_findnext(hFile, &fileinfo) == 0);

        _findclose(hFile);
    }

}

//获取特定格式的文件名
void GetAllFormatFiles(string path, vector<string>& files, string format)
{
    //文件句柄  
    long long   hFile = 0; 
    //文件信息  
    struct _finddata_t fileinfo;
    string p;
    if ((hFile = _findfirst(p.assign(path).append("\\*" + format).c_str(), &fileinfo)) != -1)
    {
        do
        {
            if ((fileinfo.attrib & _A_SUBDIR))
            {
                if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
                {
                    //files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                    GetAllFormatFiles(p.assign(path).append("\\").append(fileinfo.name), files, format);
                }
            }
            else
            {
                files.push_back(p.assign(path).append("\\").append(fileinfo.name));
            }
        } while (_findnext(hFile, &fileinfo) == 0);

        _findclose(hFile);
    }
}

// 该函数有两个参数,第一个为路径字符串(string类型,最好为绝对路径);
// 第二个参数为文件夹与文件名称存储变量(vector类型,引用传递)。
// 在主函数中调用格式(并将结果保存在文件"AllFiles.txt"中,第一行为总数):





int main()
{
    string filePath = "fault_txt";
    vector <string> files;

    
    //读取所有的文件,包括子文件的文件
    GetAllFiles(filePath, files); 

    //读取所有格式为jpg的文件
    string format = ".txt";
    GetAllFormatFiles(filePath, files, format); 




    return 0;
}

 

posted @ 2022-08-01 11:02  80k  阅读(211)  评论(0)    收藏  举报