最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)讀取特定路徑下文件夾及文件名的方法

 更新時(shí)間:2014年07月16日 11:56:05   投稿:shichen2014  
這篇文章主要介紹了C++實(shí)現(xiàn)讀取特定路徑下文件夾及文件名的方法,需要的朋友可以參考下

本文所述實(shí)例代碼主要實(shí)現(xiàn)讀取給定路徑下的所有文件夾名稱或所有帶后綴的文件名的功能。具體解決方法如下:
 
主要用到了以下幾個(gè)頭文件(類):io.h, fstream, string。
 
首先,讀取某給定路徑下所有文件夾與文件名稱,并帶完整路徑。實(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 
     {  
       if((fileinfo.attrib & _A_SUBDIR)) 
       { 
         if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) 
         {
          files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
           getFilesall( 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); 
   } 
 } 

該函數(shù)有兩個(gè)參數(shù),第一個(gè)為路徑字符串(string類型,最好為絕對(duì)路徑);第二個(gè)參數(shù)為文件夾與文件名稱存儲(chǔ)變量(vector類型,引用傳遞)。
在主函數(shù)中調(diào)用格式(并將結(jié)果保存在文件"AllFiles.txt"中,第一行為總數(shù)):

 char * filePath = "E:\\YunShi"; 
 vector<string> files; 
 char * distAll = "AllFiles.txt";
 getFilesall(filePath, files);
 ofstream ofn(distAll);
 int size = files.size(); 
 ofn<<size<<endl;
 for (int i = 0;i<size;i++) 
 { 
   ofn<<files[i]<<endl; 
 }
 ofn.close();

同理,只讀取某給定路徑下的當(dāng)前文件夾名(以下類似,只給出函數(shù),調(diào)用案例同上):

void getJustCurrentDir( 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(fileinfo.name);
           //files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
         }
           
       }  
     }while(_findnext(hFile, &fileinfo) == 0); 
     _findclose(hFile); 
   } 
 } 

只讀取某給定路徑下的當(dāng)前文件名:

 void getJustCurrentFile( 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)) 
       { 
         ;
       } 
       else 
       { 
         files.push_back(fileinfo.name);
         //files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); 
       }  
     }while(_findnext(hFile, &fileinfo) == 0); 
     _findclose(hFile); 
   } 
 } 

只讀取某給定路徑下的所有文件名(即包含當(dāng)前目錄及子目錄的文件):

void getFilesAll( 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) );
           getFilesA( 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); 
   } 
 } 

相關(guān)文章

  • C++圖像處理之雙邊濾波

    C++圖像處理之雙邊濾波

    這篇文章主要為大家詳細(xì)介紹了C++圖像處理之雙邊濾波,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 使用C++繪制GDI位圖的基本編寫(xiě)實(shí)例

    使用C++繪制GDI位圖的基本編寫(xiě)實(shí)例

    這篇文章主要介紹了使用C++繪制GDI位圖的基本編寫(xiě)實(shí)例,一般來(lái)說(shuō)適用于Windwos下的C++的GUI編程,需要的朋友可以參考下
    2015-12-12
  • C++ decltype 說(shuō)明符

    C++ decltype 說(shuō)明符

    這篇文章主要介紹了C++ decltype 說(shuō)明符,檢查實(shí)體的聲明類型,或表達(dá)式的類型和值類別。下面我們來(lái)看看文章中的具體內(nèi)容吧

    2021-12-12
  • C++內(nèi)存分區(qū)模型超詳細(xì)講解

    C++內(nèi)存分區(qū)模型超詳細(xì)講解

    在了解內(nèi)存分區(qū)之前,我們先來(lái)聊一聊為什么要進(jìn)行內(nèi)存分區(qū)。在進(jìn)行了內(nèi)存分區(qū)之后,在不同的區(qū)域存放的數(shù)據(jù),會(huì)有不同的生命周期,從而會(huì)讓程序員的編程變得更加靈活
    2022-11-11
  • 手把手帶你了解C++最小棧

    手把手帶你了解C++最小棧

    這篇文章主要介紹了C++的最小棧,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 詳解C++編譯器優(yōu)化技術(shù)

    詳解C++編譯器優(yōu)化技術(shù)

    現(xiàn)代編譯器缺省會(huì)使用RVO(return value optimization,返回值優(yōu)化)、NRVO(named return value optimization、命名返回值優(yōu)化)和復(fù)制省略(Copy elision)技術(shù),來(lái)減少拷貝次數(shù)來(lái)提升代碼的運(yùn)行效率。
    2021-06-06
  • C語(yǔ)言基于圖形庫(kù)實(shí)現(xiàn)雙人貪吃蛇

    C語(yǔ)言基于圖形庫(kù)實(shí)現(xiàn)雙人貪吃蛇

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言基于圖形庫(kù)實(shí)現(xiàn)雙人貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 奇怪的C語(yǔ)言特性

    奇怪的C語(yǔ)言特性

    下面列出的特性未必奇怪,有的算是有趣
    2013-04-04
  • C++11中條件標(biāo)量和互斥鎖應(yīng)用出現(xiàn)死鎖問(wèn)題

    C++11中條件標(biāo)量和互斥鎖應(yīng)用出現(xiàn)死鎖問(wèn)題

    這篇文章主要介紹了C++11中條件標(biāo)量和互斥鎖應(yīng)用出現(xiàn)死鎖思考,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • C++條件語(yǔ)句和條件運(yùn)算符的使用方法講解

    C++條件語(yǔ)句和條件運(yùn)算符的使用方法講解

    這篇文章主要介紹了C++條件語(yǔ)句和條件運(yùn)算符的使用方法講解,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09

最新評(píng)論

石阡县| 科技| 上高县| 新营市| 庆阳市| 得荣县| 垦利县| 临洮县| 宁都县| 揭东县| 吉林市| 乐平市| 独山县| 迭部县| 瑞安市| 金溪县| 聊城市| 呼玛县| 百色市| 平江县| 京山县| 清镇市| 宜昌市| 原阳县| 洞头县| 宁城县| 同心县| 格尔木市| 庆阳市| 都江堰市| 海淀区| 仪陇县| 广元市| 长葛市| 铅山县| 武安市| 湖南省| 淅川县| 张家川| 巴塘县| 桐庐县|