📄 untitled-11.txt
字号:
if(hF。nd!= INVALID_HANDLE_VALUE)
do
if( fd.dwFileAttributes& FILE_ATTRIBUTE.DIRECTORY)
TRACE(_T(”% s\n”), fd.oF。leNa。e);
while(::F土ndNextFile(hFind,&fd));
:: FindClose(hFIFd);
2
更有趣的问题是:如何把给定目录“和它的子目录”下的所有目录枚举出来。下面的函
数枚举出当前目录和其子目录中的所有目录,并把每个目录的名称写到调试输出窗口。秘
诀是什么?一旦遇到目录,EnumeraeFolders便进入该目录并递归调用自身。
vo。d EnumerateFolders()
《
WIN32FIND_DATA fd;
HANDLE hFind=:: FindFirstFile(T(”。。”),&fd);
if(hFind!= INVALID_HANDLE.VALUE) {
d。{
if(fd.dwFileAttributes& FILE.ATTRIBUTE.DIRECTORY) j
CStr立ng name= fd. oF主 leNarne;
IT(na。e!=_T(”.1&& na。e!=_T(”..1) 5
TRACE(T(”%s\n”), fd.cFcleName);
:: SetCurrentDirectory( fd.cFileName) ;
Enu。erateFolders();
··SetCurrento。rectory(r(”..”》;
S
}
} while(:: FindNextFile(hFind,&fd));
:: FindClose(hFind);
S
I
如果要使用该函数,先导航到枚举起始时所在的目录,然后调用EnumeraeF0lders。下面的语
句枚举了驱动器C中的所有目录:
::SetCurrentDlrectorr(_T(”C:\\”));
EnumerateFolders();
在第10章我们将用类似的技巧给村图填充,图中各项代表某驱动器上的所有文件夹。
6.2用行化和 CArchive gr
尽管MFC的CFile类极大地简化了文件数据的读写,但是大部分MFC应用程序并不直
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -