获取GetOpenFileName多选文件名

 1 void CWriteWnd::OpenFileDialog()
 2 {
 3     OPENFILENAME ofn;      
 4     TCHAR szOpenFileNames[80*MAX_PATH] = _T("");
 5     TCHAR szPath[MAX_PATH];
 6     TCHAR szFileName[80*MAX_PATH];
 7 
 8     TCHAR* p;
 9     int nLen = 0;
10     ZeroMemory(&ofn, sizeof(ofn));  
11 
12     ofn.lStructSize = sizeof(ofn);
13     ofn.hwndOwner   = *this;
14     ofn.lpstrFile   = szOpenFileNames;   
15     ofn.nMaxFile    = sizeof(szOpenFileNames);  
16     ofn.lpstrFilter = _T("自设文件类型(*.*)\0*.*\0所有文件(*.*)\0*.*\0\0") ;
17     ofn.nFilterIndex    = 1;  
18     ofn.lpstrFileTitle  = NULL;  
19     ofn.nMaxFileTitle   = 0;  
20     ofn.lpstrInitialDir = NULL;  
21     ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST |OFN_ALLOWMULTISELECT;
22 
23 
24 
25     if( GetOpenFileName( &ofn ) )
26     {  
27         //把第一个文件名前的复制到szPath,即:
28         //如果只选了一个文件,就复制到最后一个'/'
29         //如果选了多个文件,就复制到第一个NULL字符
30         lstrcpyn(szPath, szOpenFileNames, ofn.nFileOffset );
31 
32         //当只选了一个文件时,下面这个NULL字符是必需的.
33         //这里不区别对待选了一个和多个文件的情况
34 
35         szPath[ ofn.nFileOffset ] = '\0';
36         nLen = lstrlen(szPath);
37 
38         if( szPath[nLen-1] != '\\' )   //如果选了多个文件,则必须加上'\\'
39         {
40             lstrcat(szPath, TEXT("\\"));
41         }
42 
43 
44         p = szOpenFileNames + ofn.nFileOffset; //把指针移到第一个文件
45 
46 
47         while( *p )
48         { 
49             ZeroMemory(szFileName, sizeof(szFileName));
50             lstrcat(szFileName, szPath);  //给文件名加上路径  
51             lstrcat(szFileName, p);    //加上文件名    
52             lstrcat(szFileName, TEXT("/n")); //换行 
53             p += lstrlen(p) +1;     //移至下一个文件
54         }
55     }
56     MessageBox(NULL, szFileName, TEXT("MultiSelect"), MB_OK); 
57 }    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值