欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年06月12日 16:32:01   作者:whlook  
這篇文章主要為大家詳細(xì)介紹了C++獲取指定目錄下所有文件的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

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

需要包含的頭文件

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

函數(shù)實(shí)現(xiàn)

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); //尋找下一個(gè),成功返回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); //尋找下一個(gè),成功返回0,否則-1
    _findclose(hFile);
  }
}

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

/*
path: 指定目錄
files: 保存結(jié)果
fileType: 指定的文件格式,如 .jpg
*/
void getAllFiles(string path, vector<string>& files,string fileType) 
{
  // 文件句柄
  long hFile = 0;
  // 文件信息
  struct _finddata_t fileinfo; 

  string p;

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

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

    _findclose(hFile);
  }
}

4.測(cè)試

int main(int argc, char** argv)
{
  vector<string> temp;
  getAllFiles("J:\\faces\\test", temp,".jpg");
  for (int i = 0; i < temp.size();++i )
  {
    cout << temp[i] << endl;
  }
  return 0;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C/C++ Qt 數(shù)據(jù)庫(kù)與Chart歷史數(shù)據(jù)展示

    C/C++ Qt 數(shù)據(jù)庫(kù)與Chart歷史數(shù)據(jù)展示

    這篇文章主要介紹了Qt利用Qchart組件展示數(shù)據(jù)庫(kù)中的歷史數(shù)據(jù)。文中的示例代碼講解清晰,具有一定的學(xué)習(xí)和工作價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • C語言運(yùn)算符優(yōu)先級(jí)列表(超詳細(xì))

    C語言運(yùn)算符優(yōu)先級(jí)列表(超詳細(xì))

    本篇文章是對(duì)C語言中運(yùn)算符的優(yōu)先級(jí)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言深入講解指針與結(jié)構(gòu)體的使用

    C語言深入講解指針與結(jié)構(gòu)體的使用

    指針提供了對(duì)地址操作的一種方法,因此,使用指針可使得C語言能夠更高效地實(shí)現(xiàn)對(duì)計(jì)算機(jī)底層硬件的操作。另外,通過指針可以更便捷地操作數(shù)組。C數(shù)組允許定義可存儲(chǔ)相同類型數(shù)據(jù)項(xiàng)的變量,結(jié)構(gòu)是C編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許您存儲(chǔ)不同類型的數(shù)據(jù)項(xiàng)
    2022-05-05
  • c++傳輸文件到不同計(jì)算機(jī)上的示例代碼

    c++傳輸文件到不同計(jì)算機(jī)上的示例代碼

    這篇文章主要為大家詳細(xì)介紹了c++傳輸文件到不同計(jì)算機(jī)上的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 如何使用C語言實(shí)現(xiàn)平衡二叉樹數(shù)據(jù)結(jié)構(gòu)算法

    如何使用C語言實(shí)現(xiàn)平衡二叉樹數(shù)據(jù)結(jié)構(gòu)算法

    對(duì)于判斷是否為平衡二叉樹而言,我們需要知道以下特性:是一個(gè)二叉樹也是一個(gè)二叉排序樹該樹的每個(gè)結(jié)點(diǎn)上的(深度)左子樹 - 右子樹的值為平衡因子(BF(Balance Factor))該樹的每一個(gè)節(jié)點(diǎn)的左子樹和右子樹的高度至多等于1(平衡因子只可能是-1,0,1)
    2021-08-08
  • C++中STL的優(yōu)先隊(duì)列priority_queue詳解

    C++中STL的優(yōu)先隊(duì)列priority_queue詳解

    這篇文章主要介紹了C++中STL的優(yōu)先隊(duì)列priority_queue詳解,今天講一講優(yōu)先隊(duì)列(priority_queue),實(shí)際上,它的本質(zhì)就是一個(gè)heap,我從STL中扒出了它的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2023-08-08
  • C++ 實(shí)現(xiàn)即時(shí)通信的示例代碼(直接運(yùn)行)

    C++ 實(shí)現(xiàn)即時(shí)通信的示例代碼(直接運(yùn)行)

    本文主要介紹了C++ 實(shí)現(xiàn)即時(shí)通信的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C++ STL list 遍歷刪除出錯(cuò)解決方案

    C++ STL list 遍歷刪除出錯(cuò)解決方案

    這篇文章主要介紹了C++ STL list 遍歷刪除出錯(cuò)解決方案的相關(guān)資料,這里對(duì)出錯(cuò)進(jìn)行分析,并給出正確的解決方法,需要的朋友可以參考下
    2016-12-12
  • C語言進(jìn)階教程之函數(shù)指針詳解

    C語言進(jìn)階教程之函數(shù)指針詳解

    函數(shù)指針是一個(gè)指針變量,它可以存儲(chǔ)函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關(guān)于C語言進(jìn)階教程之函數(shù)指針的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • C++異常捕捉與處理的深入講解

    C++異常捕捉與處理的深入講解

    這篇文章主要給你大家介紹了關(guān)于C++異常捕捉與處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評(píng)論