szFolder.TrimRight(_T("\"));
CFileFind ff;
BOOL b = ff.FindFile(szFolder + _T("\*"));
CStringArray folders;
while (b)
{
b = ff.FindNextFile();
if (ff.IsDots())
continue;
if (ff.IsDirectory())
{
folders.Add(ff.GetFilePath());
}
else
{
CAddInfo ai;
ai.m_szName = ff.GetFilePath();
CFileStatus fs;
if (CFile::GetStatus(ai.m_szName, fs) /*&& IsNewFile(ff.GetFilePath(), 0)*/)
{
ai.m_bDir = false;
ai.m_iSize = fs.m_size;
list.AddTail(ai);
m_iTotal += fs.m_size;
}
}
}
for (int i = 0; i < folders.GetSize(); i++)
{
list.AddTail(CAddInfo(folders, 0, true));
// add the folder before adding its files
// it is not needed to add the root folder
AddFolder(folders);
}
}
catch (CException* e)
{
e->ReportError();
e->Delete();
}
catch(...) // thrown in the STL version
{
AfxMessageBox("Error");
}
}