近日我程序里有一段功能,是打开一个OpenFileDialg ,然后选择多个文件
    if(pFDlg->DoModal()==IDOK)
    {
        ....通过循环把 文件名 放到CString str[100]里
    }
    问题出现在当我一次多选,大概超过20个文件时,程序不走IDOK
    于是我跟踪中到MFC里发现  OPENFILENAME 结构一个参数DWORD  nMaxFile的值
    衡为260,(我发现在Openfile对话框里,"文件名"里字符长度超过了260) 
    也就是说LPTSTR  lpstrFile的长度不能超过260吗?
    请问一次最多能打开多少个文件?怎样设置?    谢谢各位参与!!!
    
         

解决方案 »

  1.   

    你設置 OPENFILENAME
    OFN_LONGNAMES
     For old-style dialog boxes, this flag causes the dialog box to use long file names. If this flag is not specified, or if the OFN_ALLOWMULTISELECT flag is also set, old-style dialog boxes use short file names (8.3 format) for file names with spaces. 
    Explorer-style dialog boxes ignore this flag and always display long file names.
      

  2.   

    ruixp(锐剑) :  反正我一次打开过4000多个    能告诉我dwFlags的组合吗?
      

  3.   

    文件的名字最多(包含路径)只有256,参见_MAX_PATH的宏定义(标C),我不知道楼上的兄台一次性打开4000多个文件是如何实现的,望告知。
    另外,你可以先让其返回所选的文件名称,然后用程序循环打开(试试看)。
      

  4.   

    kof_G (拳皇)  :
         还不行吗?看这里http://www.yesky.com/20020429/1609421.shtml
         有你的答案!