• c++ 枚举目录


    using namespace std;
    #include <string.h>
    #include <iostream>
    #include <cstring>
    #include <windows.h>
    #include <string>
    #include <vector>
    
    using namespace std;
    
    void listFiles(const char* dir, vector<string>& result);
    
    int main()
    {
    
        vector<string> vec;
    
        listFiles("D:\\alantop_dir\\*.*", vec);
    
        cout << "file sum number = " << vec.size() << endl;
    
        //DeleteFile
    
        //_rmdir()
    
        //    DeleteDirectory(sTempDir)
    
        //    RemoveDirectory(sTempDir)
    
        for (int i = 0; i < (int)vec.size(); i++) {
            cout << vec[i] << endl;
        }
    
    
        return 0;
    }
    
    void listFiles(const char* dir, vector<string>& result)
    {
    
        HANDLE hFind;
        WIN32_FIND_DATA findData;
        LARGE_INTEGER size;
        hFind = FindFirstFile(dir, &findData);
        if (hFind == INVALID_HANDLE_VALUE)
        {
            cout << "Failed to find first file!\n";
            return;
        }
        do
        {
            // 忽略"."和".."两个结果 
            if (strcmp(findData.cFileName, ".") == 0 || strcmp(findData.cFileName, "..") == 0)
                continue;
            if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)    // 是否是目录 
            {
                //cout << findData.cFileName << "\t<dir>\n";
                char path[MAX_PATH] = "\0";
                memcpy(path, dir, strlen(dir) - 3);
    
                strcat(path, findData.cFileName);
                cout << path << "---[dir]" << endl;
                strcat(path, "\\*.*");
                listFiles((const char*)path, result);
    
            }
            else
            {
                size.LowPart = findData.nFileSizeLow;
                size.HighPart = findData.nFileSizeHigh;
                //cout << findData.cFileName << endl;
                string dirstring(dir, dir + strlen(dir)-3);
                string filename = findData.cFileName;
                result.push_back(dirstring + filename);
                //"\t" << size.QuadPart << " bytes\n";
            }
        } while (FindNextFile(hFind, &findData));
    
    
        FindClose(hFind);
    
    }
    

      

  • 相关阅读:
    maven上传jar包规范
    java.util.ConcurrentModificationException
    求集合中的最大值和最小值
    对象/集合转换成json
    字符串直接赋值和构造赋值的区别
    CSV文件读取
    读取properties配置文件
    图片轮播 js代码
    工作流数据库字段设计-审批流程。。
    @Html.Partials 加载分布视图传参数
  • 原文地址:https://www.cnblogs.com/alantop/p/16021128.html
Copyright © 2020-2023  润新知