windows下C++通过对话框打开文件,可以批量选择文件
时间: 2024-04-08 15:30:47 浏览: 35
在Windows下,你可以使用Common Dialog库来实现通过对话框打开文件并批量选择文件。以下是一个示例代码:
```cpp
#include <windows.h>
#include <commdlg.h>
int main()
{
// 初始化OPENFILENAME结构体
OPENFILENAME ofn;
char szFile[260] = { 0 };
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = NULL;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All Files (*.*)\0*.*\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;
// 显示打开文件对话框
if (GetOpenFileName(&ofn) == TRUE)
{
// 处理选择的文件路径
char* p = szFile;
while (*p) p += strlen(p) + 1; // 定位到路径末尾
// 如果只选择了一个文件,p指向文件名
if (*(p + 1) == '\0')
{
printf("选择的文件路径:%s\n", szFile);
}
else
{
// 否则,p指向第一个文件名,后续是其他文件名
printf("选择的文件夹路径:%s\n", szFile);
p++;
while (*p)
{
printf("文件名:%s\n", p);
p += strlen(p) + 1;
}
}
}
else
{
// 用户取消了选择
printf("取消选择文件\n");
}
return 0;
}
```
这段代码会打开一个文件对话框,用户可以选择一个或多个文件。选择的文件路径会被打印出来。如果用户取消了选择,则会打印"取消选择文件"。
请注意,这段代码是基于Windows API编写的,因此在其他平台上可能无法编译运行。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)