vc如何同时打开超过一万个文件?在线等

解决方案 »

  1.   

    CStringArray strArray; TCHAR * pszFile = new TCHAR[MAX_PATH * MAX_PATH];
    memset(pszFile,0,sizeof(TCHAR)*MAX_PATH * MAX_PATH); //申请一个足够大的字符串,以存放所有的namepath
    //config file dialog
    CFileDialog dlg(
    TRUE,  
    NULL,
    NULL,
    OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING ,
    _T("Task Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"),
    NULL);  
    dlg.m_ofn.lpstrFile = pszFile;  //将字符串指针赋值给m_ofn
    dlg.m_ofn.nMaxFile = MAX_PATH*MAX_PATH;   //指明了缓冲区的大小,相应的最大字符串长度也要赋给m_ofn
    dlg.DoModal();
    POSITION ps = dlg.GetStartPosition();
    CString str;
    int nCount=0;
    while(ps!=NULL)
    {
    str = dlg.GetNextPathName(ps);
    strArray.Add(str);
      nCount++;
    }
    超过2500多就不行了
      

  2.   

    你要想获取文件名,也不至于这样啊,你做成一个循环体,打开然后关闭就可以了呀。CFileDialog::GetFileName函数可以获取到。遍历你选择的文件,一个一个的打开,获取文件名,关闭。这样就可以了呀!同时打开,几乎不可能。