none
MFC POCKET PC 查看路徑底下的資料夾 RRS feed

  • 問題

  • 我在VS2OO5下做~我參考了網路範例~可是還無法做出來~有先進可以跟我說錯在哪裡嗎??

    謝謝指教

    void CmapDlg:SurprisenOpenDirectory(TCHAR *szDir)
    {
     int getListCount=m_pDirList.GetCount();
     for(int i=getListCount;i<0;i--)
     {
      //m_pDirList.DeleteItem(i);//刪除list項目,要從最大開始刪
     }
     TCHAR szDirect[MAX_PATH];//MAX_PATH 這個是什麼
     ::WIN32_FIND_DATA winfd;
     swprintf(szDirect,TEXT("%S"),szDir);
     HANDLE hFind=::FindFirstFile(szDirect,&winfd);
     BOOL bNEXT=true;
     while(bNEXT)
     {
      if(wcscmp(winfd.cFileName,TEXT(".."))!=0 && wcscmp(winfd.cFileName,TEXT(".."))!=0)
      {
       if(hFind!=invalid_handle_value)
       {
        CString a=winfd.cFileName;
        m_pDirList.AddString (winfd.cFileName);
       
      
       }
       bNEXT=::FindNextFile(hFind,&winfd);
      
      } 
     
     }
     
     FindClose(hFind);

    }

     

    2008年4月29日 上午 10:36

解答

  • HI,

     

    您可以這樣做, 紅色字體為需要修改的地方:

     

     int getListCount=m_pDirList.GetCount();
      for(int i=getListCount;i<0;i--)
      {
       //m_pDirList.DeleteItem(i);//刪除list項目,要從最大開始刪
      }
      TCHAR szDirect[MAX_PATH];//MAX_PATH 這個是什麼
      ::WIN32_FIND_DATA winfd;
      swprintf(szDirect,TEXT("%S"),"*.*");
      HANDLE hFind=::FindFirstFile(szDirect,&winfd);
      BOOL bNEXT=true;
      while(bNEXT)
      {
       if(wcscmp(winfd.cFileName,TEXT(".."))!=0 && wcscmp(winfd.cFileName,TEXT(".."))!=0)
       {
        if(hFind!=INVALID_HANDLE_VALUE)
        {
      CString a=winfd.cFileName;
      m_pDirList.AddString (winfd.cFileName);
       
      
        }
        bNEXT=::FindNextFile(hFind,&winfd);
      
       }
     
      }
     
      FindClose(hFind);

     

    tihs

     

    2008年4月30日 上午 03:25