在MFC中,使用CFileFind类,可以枚举一个目录下的所有文件和子目录。
示例:
void ListFolder(const CString & sPath){
CFileFind ff;
BOOL bFound = ffFindFile(sPath + "\\");
while(bFound)
{
bFound = ffFindNextFile();
if(ffIsDirectory()) //是目录
{
if(!ffIsDots()) //不是本级目录或父目录(和)
ListFolder(ffGetFilePath()); //递归子目录
}
else
{
AfxMessageBox("文件:" + ffGetFilePath());
}
}
ffClose();
}
递归获取本文件夹(包括子文件夹)中的文件:
int CountDirectory(CString path)
{
int count = 0;
CFileFind finder;
BOOL working = finderFindFile(path + "\\");
while (working)
{
working = finderFindNextFile();
if (finderIsDots())
continue;
if (finderIsDirectory())
count += CountDirectory(finderGetFilePath());
else
count++;
}
return count;
}
只获取本文件夹中的文件:
int CountDirectory(CString path)
{
int count = 0;
CFileFind finder;
BOOL working = finderFindFile(path + "\\");
while (working)
{
working = finderFindNextFile();
if (finderIsDots())
continue;
if (!finderIsDirectory())
count++;
}
return count;
}
可以使用SHGetSpecialFolderLocation函数获得“我的电脑”所对应的虚拟文件夹的id。然后使用ShellExecuteEx打开这个虚拟文件夹。
使用API函数SHGetSpecialFolderLocation。shlobjh里有SHGetSpecialFolderLocation的原型声明。这个函数可以帮我们找到Windows的桌面目录、启动目录、我的文档目录等。
以上就是关于MFC获取指定文件夹文件目录全部的内容,包括:MFC获取指定文件夹文件目录、vc如何获取文件夹中文件个数、VC,如何打开一个文件夹(就象打开我的电脑一样的显示一个文件夹)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)