|
|
|
| Это решение для Visual C++, поэтому имена функций предваряет символ подчеркивания. Вообще в стандартном C++ их нет, да и файловая структура _finddata_t и называется по-другому и имеет немного другую структуру. Однако, за минусом этих деталей, порядок действия во всех реализациях C++ один и тот же.
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <iostream>
using namespace std;
int main(void)
{
// Размер директории
long int sizedir = 0;
// Вспомогательные структуры и дескрипторы
struct _finddata_t file;
intptr_t hFile;
// Открываем текущую директорию
if((hFile = _findfirst( "*.*", &file )) == -1L)
{
cerr << "Не удалось открыть директорию" << endl;
}
else
{
// В цикле обходим файлы директории
do
{
cout << file.name << " = " << file.size << " bytes " << endl;
sizedir += file.size;
} while( _findnext(hFile, &file) == 0 );
// Закрываем директорию
_findclose(hFile);
cout << "Общий размер директории = " << sizedir << " bytes " << endl;
}
// Остановка перед закрытием окна
system("PAUSE");
return 0;
} |
| |
|
|