Цитата:
Может переменную "счётчика" не обнулил до начала циклов, и вней присутствуют левые данные.
|
Сам счетчик в начале цикла for обнуляется. возможно надо HANDLE hf обнулить. Я попробЫвал написать hf=INVALID_HANDLE_VALUE; и у меня вообще отрицательные значения получились. хотя если в конце стоит FindClose(hf); то этого не надо делать
Код:
CString bukva[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char temp[100];
for(int i=0;i<26;i++)
{
hFirstFile=0;//обнуляем
hFirstFile=0; // и здесь обнуляем
WIN32_FIND_DATA lpFindFileData ;
WIN32_FIND_DATA FindFileData;
HANDLE hf;
hf=INVALID_HANDLE_VALUE;
hf=FindFirstFile(_T(bukva[i]+":\\*.*"), &FindFileData);
if (hf!=INVALID_HANDLE_VALUE)
{
do
{hFirstFile=0;hFirstFile=0;
if ((FindFileData.dwFileAttributes&&FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
{
hFirstFile++;
}
else
{
hFirstFile1++;
}
}
while (FindNextFile(hf,&FindFileData)!=0);
m_info += " В корне диска "+_T(bukva[i]+" ");
itoa( (int)hFirstFile, temp, 10 );
m_info += (CString)&temp[0]; m_info += "папок";m_info += "\r\n";
m_info += " В корне диска "+_T(bukva[i]+" ");
itoa( (int)hFirstFile1, temp, 10 );
m_info += (CString)&temp[0]; m_info += " файлов";m_info += "\r\n";
FindClose(hf);
}
}
UpdateData(false);