typedef CList<long,long> LongList;
typedef CList<CString,CString&> StringList;
int GetFileList(CString strPath,CString strExt,LongList& sizelist,StringList& namelist)
{
CString strFileName;
WIN32_FIND_DATA wfd={0};
BOOL bFinished=FALSE;
int nIndex=0;
strFileName=strPath+TEXT("*.")+strExt;
HANDLE hSearch=FindFirstFile(strFileName.GetBuffer(0),&wfd);
if (hSearch==INVALID_HANDLE_VALUE)
{
return 0;
}
while(!bFinished)
{
if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
if (nIndex==0)
{
sizelist.AddHead((long)wfd.nFileSizeLow);
//strFileName.Format("%s%s",strPath,wfd.cFileName);
strFileName=strPath+wfd.cFileName;
namelist.AddHead(strFileName);
}
else
{
POSITION pos;
pos=sizelist.FindIndex(nIndex);
sizelist.InsertAfter(pos,(long)wfd.nFileSizeLow);
pos=namelist.FindIndex(nIndex);
//strFileName.Format("%s%s",strPath,wfd.cFileName);
strFileName=strPath+wfd.cFileName;
namelist.InsertAfter(pos,strFileName);
}
nIndex++;
}
if (!FindNextFile(hSearch,&wfd))
{
if (GetLastError()==ERROR_NO_MORE_FILES)
{
bFinished=TRUE;
}
}
}
FindClose(hSearch);
return nIndex;
}
long GetMaxFileSize(LongList& sizelist,int nCount)
{
int nIndex=0;
long nValMax=sizelist.GetHead();
for (int i=1;i<nCount;i++)
{
long nVal=sizelist.GetAt(sizelist.FindIndex(i));
if(nVal>nValMax)
{
nValMax=nVal;
//nIndex=i;
}
}
//return nIndex;
return nValMax;
}