正如标题所说,我正在C++/C上寻找一个函数,它将打开一个文件资源管理器窗口,从用户的系统中获取一个文件作为输入。我只通过谷歌搜索system()函数没有找到很多东西,但它并没有真正做我需要它做的事情(或者我不知道如何使用它)。我只正确地尝试了System()函数,因为这是我发现的全部,所有其他的东西都是关于我不需要的文件名,而且它不是我正在寻找的函数
b1zrtrql1#
从评论,我假设你想要的Windows唯一的方法
#include <iostream> #include <Windows.h> using namespace std; string fileDialog(LPCSTR fileType) { OPENFILENAMEA ofn; char szFile[300]; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = NULL; ofn.lpstrFile = szFile; ofn.lpstrFile[0] = '\0'; ofn.nFilterIndex = 1; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = fileType; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileNameA(&ofn)) { return ofn.lpstrFile; } return ""; } int main() { cout << fileDialog("Any File\0*") << endl; cout << fileDialog("EXE File\0*.exe") << endl; cout << fileDialog("MP4 File\0*.mp4") << endl; return 0; }
1条答案
按热度按时间b1zrtrql1#
从评论,我假设你想要的Windows唯一的方法