2011-06-12 72 views
-1

我尋覓的一切,但沒有源代碼,我發現工作與VS C++ 2008,
你有什麼辦法找到在編程目錄中的文件列表?如何獲得文件列表目錄中的編程

我在Windows上使用VS 2008 C++。

+1

請顯示你已經嘗試過並解釋什麼不起作用 – Mat 2011-06-12 06:44:52

+1

你真的嘗試過嗎?這是谷歌會給你的第一個結果http://www.cplusplus.com/forum/beginner/9173/ – nacho4d 2011-06-12 06:45:12

+1

你可能想看看這兩個問題和答案:http://stackoverflow.com/q/2531874/179910(他編輯代碼到問題中,所以它有一個可能的答案以及...) – 2011-06-12 06:46:16

回答

5

這應找到C:驅動器的文件列表,它不使用dirent.h只是簡單的文件處理的API,
FindFirstFile & FindNextFile

#include <windows.h> 

int main(int argc, char* argv[]) 
{ 
    WIN32_FIND_DATA search_data; 

    memset(&search_data, 0, sizeof(WIN32_FIND_DATA)); 

    HANDLE handle = FindFirstFile("c:\\*", &search_data); 

    while(handle != INVALID_HANDLE_VALUE) 
    { 
     cout<<"\n"<<search_data.cFileName; 

     if(FindNextFile(handle, &search_data) == FALSE) 
     break; 
    } 

    //Close the handle after use or memory/resource leak 
    FindClose(handle); 
    return 0; 
} 

你應該有看看msdn網站上的標準API。

+1

windows api的例子總是很醜陋 – 2011-06-12 07:06:03

+0

@Gene Bushuyev:OP問了一個。 – 2011-06-12 07:08:13

+0

@AlokSave不能將search_data.cFileName寫入標準輸出。 cFileName是一個WCHAR。 – ohbrobig 2016-04-17 23:12:20

4

如果您使用的是Boost,那麼您可以使用boost :: filesystem。

如果您使用的是Qt,那麼您可以使用QDir。

+0

+1 for boost.filesystem。這幾乎是C++標準的一部分,每個人都希望它在那裏,所以在下一個TR中尋找它......在此期間,優秀的庫文件將爲您節省大量頭痛和寫作。試一試。 – 2011-06-12 09:43:51

相關問題