找到子目录文件,则调用自身删除这个子目录。代码
如下:
//CMyFile 是一个自定义功能的文件cāo作类
//DeleteTree 函数用于删除目录,并同时删除目录中的所有子目录和文件
//参数strDir 用于确定要删除的目录名
void CMyFile::DeleteTree(CString strDir)
{
CFileFind finder; //创建一个目录搜索类
CString delFile=strDir;
delFile+="\\*.*"; //设置搜索目录的通配符
//开始搜索,bWorking 用于表示是否搜索到新文件
BOOL bWorking = finder.FindFile(delFile);
//如果bWorking 为TRUE 则继续循环
while (bWorking)
{
//获取下一个文件
bWorking = finder.FindNextFile();
//获取找到的文件名
CString filencom=finder.GetFilePath();
//如果文件是一个目录,而且不是一个“.”或者“..”的目录
//那么删除这个子目录
枫叶文学网www.fywxw.com
第8 章 文件cāo作
·203·
if(finder.IsDirectory()&&(!finder.IsDots()))
{
//递归调用自身删除子目录
Delete(filencom);
}
else if (!finder.IsDots()) //如果文件不是一个“.”或者“..”的文件则删除该文件
{
CFile::Remove(filencom); //删除文件
}
}
//文件查找完毕,所有文件都已经删除,目录清空
RemoveDirectory(strDir); //删除空目录
}
8.3 文件对话框
第4 章已经介绍过文件对话框的基本使用方法。现在介绍一些关于CFileDialog 的高级使
用方法,包括多选文件对话框的使用方法和重载文件对话框的方法,使得程序能更灵活地控
制文件对话框。
8.3.1 多选文件对话框
当构造CFileDialog 类时指定了OFN_ALLOWMULTISELECT 的属xìng,则CFileDialog 允
许用户选择多个文件,如图8-3 所示。
当设置允许多选的文件对话框时,与普通使用惟一的区别就是如何获得所有选定的文
件。这就用到CFileDialog::GetStartPosition()和CFileDialog::GetNextPathNcom()两个函数。
图8-3 可以多选的打开文件对话框
CFileDialog::GetStartPosition()函数用于获得选择列表中的第一个文件路径名的位置,其
原型为: