GetOpenFileName 函数打开多个选择文件
2013-05-20 10:14
429 查看
OPENFILENAME ofn;
TCHAR szFile[8 * MAX_PATH];
TCHAR szPath[MAX_PATH];
TCHAR szCopy[MAX_PATH];
TCHAR *pFilePath;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = TEXT('\0');
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT(".jpg\0*.jpg\0");
ofn.nFilterIndex = 2;
ofn.hwndOwner = hWnd; // 打开窗口父窗口句柄
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;
// 由于打开对话框为多选,故必须包含OFN_ALLOWMULTISELECT
// 关闭打开对话框后,其多选的结果保存在ofn.lpstrFile中,以'\0'分割
if(GetOpenFileName(&ofn))
{
lstrcpyn(szPath, szFile, ofn.nFileOffset);
szPath[ofn.nFileOffset] = TEXT('\0');
if(szPath[_tcslen(szPath) - 1] != TEXT('\\')) // 必须加上TEXT('\\'),因为是文件目录
{
_tcscat_s(szPath, MAX_PATH, TEXT("\\"));
}
pFilePath = szFile + ofn.nFileOffset;
while( * pFilePath)
{
ZeroMemory(szCopy, sizeof(szCopy));
_tcscpy_s(szCopy, szPath); // 文件路径
_tcscat_s(szCopy, pFilePath); // 文件名
pFilePath += _tcslen(pFilePath) + 1; // 指向下一个文件名
// szCopy中保存的就是每一个文件的完整路径
}
}
TCHAR szFile[8 * MAX_PATH];
TCHAR szPath[MAX_PATH];
TCHAR szCopy[MAX_PATH];
TCHAR *pFilePath;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = TEXT('\0');
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT(".jpg\0*.jpg\0");
ofn.nFilterIndex = 2;
ofn.hwndOwner = hWnd; // 打开窗口父窗口句柄
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;
// 由于打开对话框为多选,故必须包含OFN_ALLOWMULTISELECT
// 关闭打开对话框后,其多选的结果保存在ofn.lpstrFile中,以'\0'分割
if(GetOpenFileName(&ofn))
{
lstrcpyn(szPath, szFile, ofn.nFileOffset);
szPath[ofn.nFileOffset] = TEXT('\0');
if(szPath[_tcslen(szPath) - 1] != TEXT('\\')) // 必须加上TEXT('\\'),因为是文件目录
{
_tcscat_s(szPath, MAX_PATH, TEXT("\\"));
}
pFilePath = szFile + ofn.nFileOffset;
while( * pFilePath)
{
ZeroMemory(szCopy, sizeof(szCopy));
_tcscpy_s(szCopy, szPath); // 文件路径
_tcscat_s(szCopy, pFilePath); // 文件名
pFilePath += _tcslen(pFilePath) + 1; // 指向下一个文件名
// szCopy中保存的就是每一个文件的完整路径
}
}
相关文章推荐
- C++ 选择文件对话框 函数 GetOpenFileName 使用的一个demo
- <Win32 API> 打开/保存文件, 选择目录 GetOpenFileName
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- 如何得到通过GetOpenFileName选择的多个文件的文件名
- 【转】如何得到通过GetOpenFileName选择的多个文件的文件名
- 打开文件对话框GetOpenFileName Win32, PPC, Smartphone上的异同
- 如何得到通过GetOpenFileName选择的多个文件的文件名
- MFC 对话框打开文件失败(GetOpenFileName())
- 如何得到通过GetOpenFileName选择的多个文件的文件名
- Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- 如何得到通过GetOpenFileName选择的多个文件的文件名
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- 如何得到通过GetOpenFileName选择的多个文件的文件名
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
- 资源地址;浏览和打开文件;GetOpenFileName;GetSaveFileName;OPENFILENAME;PtrToStringChars;.NET类库的打开文件夹操作
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
- GetOpenFileName 选择文件的窗口