// fragment z uzyciem win-api int RozmiarKatalogu(char* katalog,int poziom) { //podkatalogi WIN32_FIND_DATA fd; int rozmiar=0,i=0; HANDLE hPlik; char katalog2[255]; char katalog3[255]; strcpy(katalog2,katalog); strcat(katalog2,"*"); hPlik = FindFirstFile(katalog2,&fd); if (hPlik==INVALID_HANDLE_VALUE) { printf("Nie mozna znalesc pliku %s",katalog2); } else { do { if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (strcmp(fd.cFileName,".")!=0 && strcmp(fd.cFileName,"..")!=0) { for (i = 0; i < poziom; i++) { printf(" "); } printf("%s\n",fd.cFileName); strcpy(katalog3,katalog); strcat(katalog3,fd.cFileName); strcat(katalog3,"\\"); rozmiar+=RozmiarKatalogu(katalog3,poziom+1); } } else rozmiar+=fd.nFileSizeLow; } while (FindNextFile(hPlik,&fd)); } return rozmiar; } int main(int argc, char* argv[]) { printf("Rozmiar kat=%d",RozmiarKatalogu("c:\\a\\",0)); getchar(); return 0; }