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

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

Восстановить пароль Регистрация
 
MaD1
Сообщений: n/a
08.11.2010, 16:55     Получение размера диска #1
Здравствуйте, делаю вот что:

у меня 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++
C++ массив размера N
C++ Чистка диска
C++ Составить программу, читающую загрузочный сектор диска и выводящую на экран основные характеристики диска из BPB
массив A размера N C++
C++ Задан вещественный массив размера N. Создать целочисленный массив такого же размера, в котором будут записаны индексы исходного массива в порядке во
C++ Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу:
C++ Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р выбрать из та

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
чтож, и на этом спасибо
Yandex
Объявления
09.12.2010, 17:09     Получение размера диска
Ответ Создать тему
Опции темы

Текущее время: 01:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru