[問題] 列舉給定目錄中所有目錄、子目錄、檔案 …
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2005
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
使用WIN的API
問題(Question):
遞回搜尋會出現問題
餵入的資料(Input):
自填電腦路徑
預期的正確結果(Expected Output):
找出路徑資料夾下,所有檔案及目錄及子目錄名稱
程式碼(Code):(請善用置底文網頁, 記得排版)
#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include<shlobj.h>
#include <strsafe.h>
void EnumerateFolders ();
void _tmain(int argc, TCHAR *argv[])
{
:: SetCurrentDirectory (_T ("F:\\EZhost"));
EnumerateFolders ();
}
void EnumerateFolders ()
{
WIN32_FIND_DATA fd;
HANDLE hFind = ::FindFirstFile (_T ("*.*"), &fd);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
_tprintf(TEXT("File %s <DIR>\n"), fd.cFileName); //檔案
system("pause");
}
else
{
_tprintf(TEXT("Folder %s <DIR>\n"), fd.cFileName); //資料夾
system("pause");
/*::SetCurrentDirectory ( fd.cFileName );
EnumerateFolders ();
:: SetCurrentDirectory (_T (".."));*/
}
}while ( ::FindNextFile ( hFind, &fd) );
::FindClose (hFind);
}
}
補充說明(Supplement):
我想用遞回的方法,找出指定路徑下所有的檔名
目前,這程式已可以找出第一層的所有目錄名及檔名
但只要我將MARK的部分(遞回)加入,就會出錯
我希望在這部分,可以再深入到第二層去搜尋
......一直遞回到搜尋完全部
請問一下大大們,我真的不知道錯在哪
可以告訴我錯在哪嗎?? 該怎麼修正呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.161.28
※ 編輯: BigTaro 來自: 60.248.161.28 (07/25 16:47)
推
07/25 16:56, , 1F
07/25 16:56, 1F
→
07/25 16:57, , 2F
07/25 16:57, 2F
→
07/25 16:57, , 3F
07/25 16:57, 3F
→
07/25 17:02, , 4F
07/25 17:02, 4F
→
07/25 17:03, , 5F
07/25 17:03, 5F
→
07/25 17:05, , 6F
07/25 17:05, 6F
→
07/25 17:06, , 7F
07/25 17:06, 7F
→
07/25 17:37, , 8F
07/25 17:37, 8F
→
07/25 17:55, , 9F
07/25 17:55, 9F
→
07/25 17:55, , 10F
07/25 17:55, 10F
→
07/25 17:55, , 11F
07/25 17:55, 11F
→
07/25 17:55, , 12F
07/25 17:55, 12F
→
07/25 17:57, , 13F
07/25 17:57, 13F
→
07/25 17:59, , 14F
07/25 17:59, 14F
→
07/25 18:00, , 15F
07/25 18:00, 15F
→
07/25 18:32, , 16F
07/25 18:32, 16F
→
07/25 21:11, , 17F
07/25 21:11, 17F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章