Твой софтовый форум > Тематические форумы > Программирование

Программа на С++

,

Ребята помогите написать програму на С++

Дата публикации: 20.12.2007 - 01:15
Maped
Поймите бденого студента!
В университете требуют программу написанную на языке С++, но я его просто не знаю.
Программка должна уметь сканировать каталоги с подкаталогами и подсчитать суммарный объем файлов в этих каталогах.
Barbarian
Не совсем оптимально, и если ещё актуально biggrin.gif

Code

#define UNICODE
#include <windows.h>
#include <wchar.h>
#include <stdio.h>

ULONG GetDirSize(WCHAR* path)
{
     ULONG DirSize = 0;
     WIN32_FIND_DATAW FindFileData;
     HANDLE hFind;
     WCHAR buff[MAX_PATH];
     
     ZeroMemory(&buff[0],MAX_PATH);
     lstrcat(&buff[0],path);
     lstrcat(&buff[0],L"\\*.*");
   
     hFind = FindFirstFileExW(&buff[0], FindExInfoStandard, &FindFileData, FindExSearchNameMatch, NULL, 0);
     if (hFind == INVALID_HANDLE_VALUE)
     {
        return 0;
     }
     DirSize += FindFileData.nFileSizeLow;
     while (FindNextFileW(hFind, &FindFileData) != 0)
     {
         if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  
         {
           if (lstrcmp(FindFileData.cFileName,L"..") != 0)
           {
               ZeroMemory(&buff[0],MAX_PATH);
               lstrcat(&buff[0],path);
               lstrcat(&buff[0],L"\\");
               lstrcat(&buff[0],FindFileData.cFileName);
               DirSize += GetDirSize(&buff[0]);
           }
         }
         else
         {
           DirSize += FindFileData.nFileSizeLow;    
         }
     }
     FindClose(hFind);  
     return DirSize;      
}

int main(int argc, CHAR* argv[])
{
   
   
   WCHAR path[MAX_PATH];
   WCHAR* ppath;
   ppath = &path[1];
   
   ULONG DirSize = 0;
   
   if( argc < 2 )
   {
       printf("Usage: %s [target_file]\n", argv[0]);
       return 0;
   }
   mbstowcs(ppath,argv[1],MAX_PATH);
   wprintf(L"Directory name: %s\nSize: %d",ppath,GetDirSize(ppath));
   
   return 0;      
}
Barbarian
Пример использования:

X:\Projects\DirSize>dirsize T:\temp
Directory name: T:\temp
Size: 25058874


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке: Программа на С++
SoftoRooM © 2004-2024