Re: Директории и список файлов
От: _CATFISH_  
Дата: 04.09.04 12:21
Оценка:
Здравствуйте, GoldSerg, Вы писали:

GS>1) Как выбрать директорию, т.е. нужно нажать на кнопку, чтобы выскочило стнд. окно с выбором директории.

GS>2) Как вывести список файлов в этой директории(а также некоторые свойства: размер), например в массив.

Открываем
    LPMALLOC pMalloc;
    if (::SHGetMalloc(&pMalloc) == NOERROR) {
        BROWSEINFO bi;
        ::ZeroMemory(&bi,sizeof bi);
        bi.ulFlags = BIF_RETURNONLYFSDIRS;
        LPITEMIDLIST pidl = ::SHBrowseForFolder(&bi);
        if (pidl != NULL) 
            if (::SHGetPathFromIDList(pidl,szPath))
                        pMalloc->Free(pidl);
                pMalloc->Release();                    }

myFindF(szPath); // Узнаем

Узнаем
void CParsDlg2Dlg::myFindF(CString Pach)
{
 CFileFind finder;


 
   Pach += _T("\\*.*");

   // start working for files
   BOOL bWorking = finder.FindFile(Pach);

   while (bWorking)
   {
      bWorking = finder.FindNextFile();
          CString str;
          str=finder.GetFilePath();
          if(finder.GetFilePath().Find(".*")!=-1){
                 NamesFile[countFiles]=str;
                 SizeAllFile+=(long)finder.GetLength();
                 countFiles++;
                    }                          
      if (finder.IsDots())
         continue;

      if (finder.IsDirectory())
      {
       str =finder.GetFilePath();
                 if(finder.GetFilePath().Find("\\.")==-1 && finder.GetFilePath().Find("\\..")== -1)
                         myFindF(finder.GetFilePath());
      }
   }

   finder.Close();
}


Выкушено из проэкта может что то и провтыкал
(как давно я хотел написать эти строки )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.