Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
MaD1
Сообщений: n/a
#1

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

08.11.2010, 16:55. Просмотров 631. Ответов 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     Получение размера диска
Посмотрите здесь:

Получение размера файла с помощью 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 - C++
Дан массив A размера N. Вывести его элементы в следующем порядке: A0, A1, AN-1, AN–2, A2, A3, AN–3, AN–4, … . Заранее благодарен!

Чистка диска - C++
Помогите написать программу в которорой задается имя каталога и тип файлов, подлежащих удалению.

Изменение размера массива - C++
Как без использования функций изменить размер массива? int x=10; int m1; int m2; int m3; iny k = 0; for (int i = 0; i < x: i...

Массив переменного размера - C++
Как реализовать такую конструкцию? Имеется ввиду строчку int a, где k - какое-то значение? void __fastcall...

Определение размера файла - C++
Здравствуйте, я учусь на программиста, нужна помощь в программе. #include <fstream.h> #include <windows.h> #include <iostream> ...

Изменение размера массива - C++
Подскажите плиз, как на С++ изменить размер массива, есть например int *pi = new int; А нужно увеличить +1 элемент, не потеряв...

Дан массив A размера N. - C++
Дан массив A размера N. Найти минимальный элемент из его элемен-тов с четными номерами: A2, A4, A6, … .

Сортировка массива размера n - C++
Здравствуйте! Помогите, пожалуйста, написать программу на с++ Заранее спасибо!


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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()

Удачи
MaD1
Сообщений: n/a
09.12.2010, 17:09     Получение размера диска #3
чтож, и на этом спасибо
Ответ Создать тему
Опции темы

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