windows編程之檔案夾遍曆

來源:互聯網
上載者:User

標籤:windows編程   windows api   遍曆檔案夾   

利用windows的API,FindFirstFile和FileNextFile,採用遞迴遍曆指定檔案夾中的所有檔案及檔案夾,第一次windows編程,代碼寫的很臃腫難看,請大家多多包涵!

<pre name="code" class="cpp">#include<cstdio>#include<cstring>#include<iostream>#include<windows.h>#define MAXN 100005using namespace std;void surf(WIN32_FIND_DATA myData){cout<<myData.ftCreationTime.dwLowDateTime<<endl;cout<<myData.ftLastAccessTime.dwLowDateTime<<endl;cout<<myData.ftLastWriteTime.dwLowDateTime<<endl;SYSTEMTIME ctime , atime , wtime;FileTimeToSystemTime(&myData.ftCreationTime , &ctime);FileTimeToSystemTime(&myData.ftLastAccessTime , &atime);FileTimeToSystemTime(&myData.ftLastWriteTime , &wtime);printf("%d年%d月%d日%d時%d分%d秒\n" , ctime.wYear , ctime.wMonth , ctime.wDay , ctime.wHour , ctime.wMinute , ctime.wSecond);printf("%d年%d月%d日%d時%d分%d秒\n" , atime.wYear , atime.wMonth , atime.wDay , atime.wHour , atime.wMinute , atime.wSecond);printf("%d年%d月%d日%d時%d分%d秒\n" , wtime.wYear , wtime.wMonth , wtime.wDay , wtime.wHour , wtime.wMinute , wtime.wSecond);cout<<endl<<endl;}void traverse(char *Str){WIN32_FIND_DATA myData;HANDLE hFind = INVALID_HANDLE_VALUE;char str[MAX_PATH] = {0};strcpy(str , Str);strcat(str , "/*");//使用萬用字元進行匹配 hFind = FindFirstFile(str , &myData);if(INVALID_HANDLE_VALUE == hFind)return ;while(FindNextFile(hFind , &myData)){if(myData.cFileName[0] != '.')//非返回目錄時進行下一步 {cout<<"========="<<myData.cFileName<<"=========="<<endl; surf(myData);if(myData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)//判斷是否為檔案夾 {char dir[MAX_PATH] = {0};strcpy(dir , Str);strcat(dir , "/");strcat(dir , myData.cFileName);//構造路徑 traverse(dir);}}}FindClose(hFind);//關閉控制代碼 }int main(){char *str = "./test";traverse(str);}




我的目前的目錄下的test檔案夾有“haha”檔案夾以及test.1 , test , 2 , test , 3三個檔案,"haha"檔案夾裡又含有“ai”檔案夾以及haha.1 , haha.2 , haha.3三個檔案,“ai”檔案夾裡又含有“wo”檔案夾以及ai.1 , ai.2 , ai.3三個檔案,"wo"檔案夾裡有wo.1 , wo.2 , wo.3三個檔案。。。


程式輸出結果:

=========haha==========
1556376338
2156419021
2156419021
2014年5月31日10時16分18秒
2014年5月31日10時24分27秒
2014年5月31日10時24分27秒


=========ai==========
2147248496
772195107
772195107
2014年5月31日10時24分27秒
2014年5月31日11時26分34秒
2014年5月31日11時26分34秒


=========ai.1==========
2197291359
2197291359
2197291359
2014年5月31日10時24分32秒
2014年5月31日10時24分32秒
2014年5月31日10時24分32秒


=========ai.2==========
2197291359
2328198846
2328198846
2014年5月31日10時24分32秒
2014年5月31日10時24分45秒
2014年5月31日10時24分45秒


=========ai.3==========
2197291359
2387262224
2387262224
2014年5月31日10時24分32秒
2014年5月31日10時24分51秒
2014年5月31日10時24分51秒


=========wo==========
752914004
2835575798
2835575798
2014年5月31日11時26分33秒
2014年5月31日15時40分33秒
2014年5月31日15時40分33秒


=========wo.1==========
806557072
806557072
806557072
2014年5月31日11時26分38秒
2014年5月31日11時26分38秒
2014年5月31日11時26分38秒


=========wo.2==========
870010701
870010701
870010701
2014年5月31日11時26分44秒
2014年5月31日11時26分44秒
2014年5月31日11時26分44秒


=========wo.3==========
870010701
923383754
923383754
2014年5月31日11時26分44秒
2014年5月31日11時26分50秒
2014年5月31日11時26分50秒


=========haha.1==========
1601118898
1601118898
1601118898
2014年5月31日10時16分22秒
2014年5月31日10時16分22秒
2014年5月31日10時16分22秒


=========haha.2==========
1601118898
1678113301
1678113301
2014年5月31日10時16分22秒
2014年5月31日10時16分30秒
2014年5月31日10時16分30秒


=========haha.3==========
1601118898
1742136963
1742136963
2014年5月31日10時16分22秒
2014年5月31日10時16分36秒
2014年5月31日10時16分36秒


=========test.1==========
1835930690
1835930690
1601118898
2014年5月31日10時23分55秒
2014年5月31日10時23分55秒
2014年5月31日10時16分22秒


=========test.2==========
1924505756
1924505756
1678113301
2014年5月31日10時24分4秒
2014年5月31日10時24分4秒
2014年5月31日10時16分30秒


=========test.3==========
1924535758
1924535758
1742136963
2014年5月31日10時24分4秒
2014年5月31日10時24分4秒
2014年5月31日10時16分36秒



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.