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

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

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

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

08.11.2010, 16:55. Просмотров 609. Ответов 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++
Изменение размера массива C++
C++ массив размера N
C++ Чистка диска
дан массив размера N C++
C++ Дан массив A размера N.
C++ Составить программу, читающую загрузочный сектор диска и выводящую на экран основные характеристики диска из BPB
массив A размера N C++
C++ Изменение размера массива
Изменение размера массива C++
C++ Увеличение размера стека
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
чтож, и на этом спасибо
Yandex
Объявления
09.12.2010, 17:09     Получение размера диска
Ответ Создать тему
Опции темы

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