1) Как выбрать директорию, т.е. нужно нажать на кнопку, чтобы выскочило стнд. окно с выбором директории.
2) Как вывести список файлов в этой директории(а также некоторые свойства: размер), например в массив.
Здравствуйте, 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();
}
Выкушено из проэкта

может что то и провтыкал
(как давно я хотел написать эти строки )