CFile类的查找函数可以帮助你,需要源码示例的话请留下email

解决方案 »

  1.   

    GetCreationTime
    GetFileName
    GetFileTitle
    GetFilePath
    GetFileURL
    GetLastAccessTime
    GetLastWriteTime
    GetLength
    GetRoot 
    有这么多的函数,应该够了吧
      

  2.   

    //use api FindFirstFile()  and  FindNextFile()
    WIN32_FIND_DATA fid
    HANDLE hFind=::FindFirsFile(_T("*.*"),&fid)
    if (hFind!=INVALID_HANDLE_VALUE) {
       do {
            if (!(fid.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
                 TRACE(_T("%s\n"),fid.cFileName)//or do anything u want
          }while (::FindNextFile(hFind,&fid))
          ::FindClose(hFind)
        }
      

  3.   

    WIN32_FIND_DATA fd;
    HANDLE hFind;
    CString szdir;
    szdir = "X:\xxx";
    szdir += _T("\\*.shp");
    hFind = FindFirstFile(szdir,&fd);
    if(hFind!=INVALID_HANDLE_VALUE){
    do{
    //if((fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
    m_listLayerFile.AddString(fd.cFileName);
    }while(FindNextFile(hFind,&fd));
    FindClose(hFind);
    }
      

  4.   

    这是我的一个GetClassInfo程序中的代码:BOOL CGetClassInfo::SearchFile(CString strStart, 
       CArray<GC_FileStruct, GC_FileStruct&> & strFileArray,
       CStringArray *pFilterArray)
    {
    GC_FileStruct fileStruct;
    CString str;
    if(strStart.IsEmpty())
    {
    return FALSE;
    }
    if(strStart.Right(1) != _T("\\"))
    {
    strStart += _T("\\");
    }
    str = strStart + _T("*.*"); SendMessage(GC_SearchFile, (LPARAM)(strStart.GetBuffer(0))); // send message to HWND CFileFind fileFind;
    BOOL bRet = fileFind.FindFile(str);
    while(bRet)
    {
    bRet = fileFind.FindNextFile();
    if(fileFind.IsDots())
    continue ; CString strFile(fileFind.GetFilePath()); 
    strFile.TrimLeft();
    strFile.TrimRight(); if(fileFind.IsDirectory())
    {
    if (strFile.Right(1) != _T("\\"))
    {
    strFile += _T("\\");
    }
    SearchFile(strFile, strFileArray, pFilterArray);
    }
    else
    {
    fileStruct.strFileName = fileFind.GetFileName();
    fileStruct.strDir = fileFind.GetRoot(); CString strExt = fileStruct.GetFileExt();
    BOOL bExist = FALSE;
    if(pFilterArray != NULL)
    {
    for(int i = 0; i < pFilterArray->GetSize(); i ++)
    {
    CString strTemp = pFilterArray->GetAt(i);
    if(strExt.CompareNoCase(strTemp) == 0)
    {
    bExist = TRUE;
    }
    }
    }
    else
    {
    bExist = TRUE;
    } if(bExist)
    {
    strFileArray.Add(fileStruct);
    }
    }
    }; fileFind.Close(); return TRUE;
    }