mfc获取指定后缀的文件名
时间: 2023-12-27 15:05:00 浏览: 26
您可以使用MFC中的CFileFind类来获取指定后缀的文件名。以下是一个示例代码:
```c++
CFileFind finder;
CString filePath = _T("C:\\MyFolder\\*.txt"); // 查找C:\MyFolder目录下的所有txt文件
BOOL bWorking = finder.FindFile(filePath);
while (bWorking)
{
bWorking = finder.FindNextFile();
if (!finder.IsDots() && !finder.IsDirectory()) // 排除 . 和 .. 目录及文件夹
{
CString fileName = finder.GetFileName();
CString ext = finder.GetFileExt();
if (ext == _T("txt")) // 如果后缀是txt
{
// 处理文件名
// ...
}
}
}
```
此示例将遍历C:\MyFolder目录中的所有txt文件,并执行一些处理。您可以更改filePath变量以匹配您的需求。
相关问题
mfc获取指定后缀的文件名,并将其输出出来的代码
抱歉,我可以回答您的问题。以下是获取指定后缀名的文件名并输出的代码(假设后缀名为txt"):
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
string path = "C:\\Users\\Admin\\Desktop"; // 文件路径
string suffix = ".txt"; // 后缀名
string filename; // 文件名
DIR *dir = opendir(path.c_str()); // 打开目录
dirent *p;
while((p=readdir(dir))!=NULL){ // 循环读取目录内容
filename = p->d_name;
if(filename=="." || filename=="..") continue; // 跳过"."和".."两个目录
if(filename.length()<suffix.length()) continue; // 确保文件名长度大于等于后缀名长度
if(filename.substr(filename.length()-suffix.length())==suffix){ // 判断文件名后缀是否为指定后缀
cout << filename << endl; // 输出文件名
}
}
closedir(dir); // 关闭目录
return 0;
}
```
请注意,该代码只适用于Windows系统,并且需要在编译前添加头文件"windows.h"和"direct.h"。如果您使用的是其他操作系统,请使用相应的头文件和函数。
MFC怎么获取指定类型文件命
令?
MFC中可以使用CFileDialog类来打开文件对话框,然后设置文件类型过滤器,只显示指定类型的文件,示例代码如下:
```c++
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Text files (*.txt)|*.txt|All files (*.*)|*.*||"));
dlg.DoModal();
CString strFilePath = dlg.GetPathName();
```
上述示例代码中,第四个参数是文件类型过滤器,只显示txt类型的文本文件。你可以根据自己的需要修改文件类型过滤器。如果需要获取文件名,可以调用GetFileName()方法,如果需要获取文件路径,可以调用GetPathName()方法。