如何查找目录下的所有文件夹
how to find all folders under directory
我测试了使用mfc在Visual Studio环境中查找目录下的所有文件夹。只需制作一个 mfc dlg,添加一个按钮,粘贴下面的代码。唯一要给出的变量是带有文件夹的"product_path"目录,空文件夹可以是 123,或 abc 或 ABC 之类的名称。测试: 测试 1 个名为 123,456 的文件夹。 结果:可以找到全部。 测试 2 个名为 123,456,AB 的文件夹。 结果:找不到文件夹名称 AB。 测试 3 个名为 123,ab,AB 的文件夹。 结果:找不到文件夹名称 AB。
/*vector_folder_name used to store found folders*/
vector<CString> vector_folder_name;
/*product_path directory with folders*/
CString product_path=_T("..\ProductType");
//sprintf(product_path,"..\%s","ProductType");
if (product_path.Right(1) != "\")
{
product_path += _T("\");
}
product_path += _T("*.*");
CFileFind ff;
BOOL ret = ff.FindFile(product_path);
while (ret)
{
ret = ff.FindNextFile();
if (ret != 0)
{
if (ff.IsDirectory() && !ff.IsDots())
{
//CString path = ff.GetFilePath();
CString folder_name = ff.GetFileName();
vector_folder_name.push_back(folder_name);
//TraverseDir(path, vec);
}
//else /*if(!ff.IsDirectory() && !ff.IsDots())*/
//{
// CString name = ff.GetFileName();
// CString path = ff.GetFilePath();
// vector_folder_name.push_back(path);
//}
}
}
//sort(vector_folder_name.begin(),vector_folder_name.end());
sort(vector_folder_name.begin(),vector_folder_name.end(),compare1);
ff.Close(); // do not foget close
您的问题与大写或小写文件名完全无关,这种情况也没有什么神奇之处,但是您的代码不正确。它也与compare1
函数无关
FindNextFile
在找到最后一个文件时返回FALSE
,因此您的代码只是跳过找到的最后一个文件。
换句话说,如果FindNextFile
返回FALSE
,这不是错误,但这意味着您已经获得了目录中的最后一个文件。
这个(甚至更简单的(代码有效:
...
BOOL ret = ff.FindFile(product_path);
while (ret)
{
ret = ff.FindNextFile();
if (ff.IsDirectory() && !ff.IsDots())
{
// it's a directory
CString folder_name = ff.GetFileName();
vector_folder_name.push_back(folder_name);
}
}
...
我已经删除了您的注释代码。
相关文章:
- 如何将更多文件夹添加到c++include路径
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何在文档文件夹中创建目录
- FFMpeg库:如何在音频文件中精确查找
- "assimp/config.h"找不到,但它在文件夹中
- C++入门 5 版:类消息和文件夹
- 我可以在 Arduino 的库文件夹之外安装库吗?
- 卡在使用dirent.h查找子文件夹C++中的所有文件
- 如何查找目录下的所有文件夹
- 查找Visual C++工具包括Visual Studio 2017的文件夹位置
- 查找第一个文件/查找下一个文件不返回文件夹中的所有文件
- 如何在C / C++中以编程方式查找"Saved Games"文件夹?
- 为什么在c++中用shell链接查找快捷方式的目标路径时,它指的是windowsinstaller文件夹
- 查找文件夹中所有类型的文件
- 指示c++应用程序在运行时在./lib子文件夹中查找动态库
- 如何查找指向文件/文件夹的所有硬链接和符号链接(Windows和UNIX)
- QMake 在指定文件夹中查找库,但链接器不会
- 如何查找文件夹是否存在以及如何创建文件夹