程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++獲取指定目錄下的所有文件

C++獲取指定目錄下的所有文件

編輯:關於C++

C++獲取指定目錄下的所有文件。本站提示廣大學習愛好者:(C++獲取指定目錄下的所有文件)文章只能為提供參考,不一定能成為您想要的結果。以下是C++獲取指定目錄下的所有文件正文


C++獲取指定目錄下的所有文件

作者:whlook

這篇文章主要為大家詳細介紹了C++獲取指定目錄下所有文件的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++獲取指定目錄下所有文件的具體代碼,供大家參考,具體內容如下

1.獲得指定目錄下的所有文件(不搜索子文件夾)

需要包含的頭文件

#include <io.h>
#include <string>
#include <vector>
#include <fstream>

函數實現

void getAllFiles(string path, vector<string>& files) 
{
  // 文件句柄
  long hFile = 0;
  // 文件信息
  struct _finddata_t fileinfo; 

  string p;

  if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) {
    do {
      // 保存文件的全路徑
      files.push_back(p.assign(path).append("\\").append(fileinfo.name));

      } while (_findnext(hFile, &fileinfo) == 0); //尋找下一個,成功返回0,否則-1

    _findclose(hFile);
  }
}

2.獲取指定目錄下的所有文件(搜索子文件夾)

void getAllFiles(string path, vector<string>& files) {
  //文件句柄
  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); //尋找下一個,成功返回0,否則-1
    _findclose(hFile);
  }
}

3.獲取指定格式的文件(不搜索子文件夾)

/*
path: 指定目錄
files: 保存結果
fileType: 指定的文件格式,如 .jpg" />

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved