乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      獲取目錄中的文件列表

       昵稱7394876 2012-03-30

      獲取目錄中的文件列表

       

      摘要:C/C++獲取指定目錄的所有的文件一直不存在一個(gè)可移植的方案,直至boost::filesystem出現(xiàn),并被標(biāo)準(zhǔn)庫(kù)接受為止。本文介紹了多個(gè)平臺(tái)中C/C++獲取目錄結(jié)點(diǎn)的方法,并指出filesystem庫(kù)的方式是C++標(biāo)準(zhǔn)方法。

      問(wèn)題

      在寫程序經(jīng)常需要知道當(dāng)前或相應(yīng)目錄存在哪些文件,或者指定文件存在與否。那么在C/C++如何完成呢?

      答案

      現(xiàn)在實(shí)中大家最常見(jiàn)的存在兩種平臺(tái),一個(gè)平臺(tái)是Windows平臺(tái),一個(gè)平臺(tái)是Linux或者說(shuō)POSIX平臺(tái),在這兩個(gè)平臺(tái)中完成相同的事有著不同的方法,但是都非常簡(jiǎn)單的。一組簡(jiǎn)單的函數(shù)就可以完成這些操作,對(duì)于應(yīng)用程序而言我們往往只需要這些。

      在POSIX中,我們使用opendir、readdir、closedir來(lái)完成這個(gè)簡(jiǎn)單的任務(wù);在Windows中,我使用findfirst、findnext、findclose來(lái)完成。由于我使用Linux系統(tǒng),并且平時(shí)沒(méi)有在Windows下寫過(guò)程序,所以下面我們只是針對(duì)POSIX平臺(tái)說(shuō)明,其實(shí)沒(méi)有什么說(shuō)明,給出一個(gè)簡(jiǎn)單的例子就可以了:

      #include<iostream>

      #include<sys/types.h>
      #include<dirent.h>

      //打開(kāi)當(dāng)前目錄,然后讀取當(dāng)前目錄中所有的結(jié)點(diǎn)
      //并打印這個(gè)結(jié)點(diǎn)的名字
      int main()
      {
              //打開(kāi)當(dāng)前的目錄
              DIR* dir=opendir(".");

              //目錄里的一個(gè)結(jié)點(diǎn)
              struct dirent* entry;
              while((entry=readdir(dir)))
              {
                      //打印第一個(gè)結(jié)點(diǎn)的名字
                      std::cout << entry->d_name << std::endl;
              }

              //關(guān)閉相應(yīng)的目錄
              closedir(dir);

              return 0;
      }

      上面的程序可以在Linux正常運(yùn)行。

      我也注意了一下Windows的處理方式,它的函數(shù)接口沒(méi)有Linux簡(jiǎn)捷,但卻功能要豐富一點(diǎn),它提供了一個(gè)搜索的功能。

      下面我說(shuō)說(shuō)如果移植解決我們這里的問(wèn)題,要做到移植性需要一個(gè)中間層,這個(gè)中間層可以是我們手工去實(shí)現(xiàn),也可以使用別人的實(shí)現(xiàn)。當(dāng)然如果別人已經(jīng)實(shí)現(xiàn)好了,那么就拿用吧,boost::filesystem已經(jīng)做到這一點(diǎn)了。本站存在這個(gè)庫(kù)的手冊(cè),所以在這里就不多說(shuō)了,可以過(guò)去參看:boost::filesystem指南。


      http://cpp./book/c_%E9%97%AE%E9%A2%98%E9%9B%86/%E8%8E%B7%E5%8F%96%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多