Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MaD1
#1

Получение размера диска - C++

08.11.2010, 16:55. Просмотров 766. Ответов 2
Метки нет (Все метки)

Здравствуйте, делаю вот что:

у меня 2 раздела - C: и D:, так вот он размер C: определяет верно,
а размер D: (он намного больше) вообще не определяет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
char *info='', buffer[501]='';
    UINT drive=0;
    DWORD 
        lpSectorsPerCluster,
        lpBytesPerSector, 
        lpNumberOfFreeClusters, 
        lpTotalNumberOfClusters;
 
    for(unsigned int i=65; i!=91; i++)
    {
        buffer[0] = i;
        buffer[1] = ':'
        buffer[2] = ''
 
        drive = GetDriveType(buffer);
        
        if(drive == DRIVE_FIXED)
        {
            lstrcat(info, 'Диск ');
            lstrcat(info, buffer);
            lstrcat(info, ' не съемный, размер: ');
fixed:
            GetDiskFreeSpace(buffer, &lpSectorsPerCluster, &lpBytesPerSector, &lpNumberOfFreeClusters, &lpTotalNumberOfClusters);
            ltoa(lpTotalNumberOfClusters*lpSectorsPerCluster*lpBytesPerSector/1024/1024, buffer, 10);
            lstrcat(info, buffer);  
            lstrcat(info, ' МБ, свободно: ');   
            ltoa(lpNumberOfFreeClusters*lpSectorsPerCluster*lpBytesPerSector/1024/1024, buffer, 10);
            lstrcat(info, buffer);  
            lstrcat(info, 'МБ
');
        }else if(drive == DRIVE_REMOVABLE)
        {
            lstrcat(info, 'Диск ');
            lstrcat(info, buffer);
            lstrcat(info, ' съемный');
            lstrcat(info, '
');
        }else if(drive == DRIVE_REMOTE)
        {
            lstrcat(info, 'Диск ');
            lstrcat(info, buffer);
            lstrcat(info, ' удаленный, размер: ');
            goto fixed;
        }
 
    }
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2010, 16:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Получение размера диска (C++):

Получение размера файла с помощью fstream. ОТВЕТ. - C++
Для того, кто не знает как получить размер файла, и того, кто не хочет пользоваться API или не умеет: ВОТ ПОЛУЧЕНИЕ РАЗМЕРА: fstream...

Составить программу, читающую загрузочный сектор диска и выводящую на экран основные характеристики диска из BPB - C++
доброго времени суток. задали такую лабораторную. 2. Составить программу, читающую загрузочный сектор диска и выводящую на экран...

Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р выбрать из та - C++
Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р...

Задан вещественный массив размера N. Создать целочисленный массив такого же размера, в котором будут записаны индексы исходного массива в порядке во - C++
Помогите с задачей: Задан вещественный массив размера N. Создать целочисленный массив такого же размера, в котором будут записаны...

Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: - C++
Помогите решить задачу на языке с++ Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент...

Получение фактического размера и размера файла в байтах - C++ WinAPI
Здравствуйте, уважаемые форумчане! Мне необходимо получить фактический размер, занимаемый файлом на диске, и размер файла в байтах...

2
np_msn
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 46
07.12.2010, 12:11 #2
Цитата из Help

'The GetDiskFreeSpace function returns incorrect values for volumes that are larger than 2 gigabytes. The function caps the values stored into *lpNumberOfFreeClusters and *
lpTotalNumberOfClusters so as to never report volume sizes that are greater than 2 gigabytes.'

Используй GetDiskFreeSpaceEx()

Удачи
0
MaD1
09.12.2010, 17:09 #3
чтож, и на этом спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2010, 17:09
Привет! Вот еще темы с ответами:

Скачки размера диска с - Windows 7
вот такая проблема диск с колеблется от 49,до 39 гб (свободно) подает и восстанавливается .Непонятно почему так.Вроде и прогами очищаю от...

Ограничение размера диска - Жесткие диски
Приветствую всех! Скажите, известны ли причины, по которым разработчики BIOS когда-то решили, что жесткий диск должен иметь именно 1024...

Получение актуального размера - C#
Есть такая вещь как WindowState = Maximized оно сходу разворачивает приложение на весь экран. Так вот когда я потом использую...

Получение размера файла - Delphi
Нижепредставленные два варианта функций действительно справляются с задачей получения размерности файла по заданному пути. Но вот, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru