Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477

Логические диски в операционной системе Windows NT

16.03.2009, 20:02. Показов 7081. Ответов 27
Метки нет (Все метки)

Написать программу , которая отображает информацию о логических дисках в текстовом виде.

Добавлено через 2 минуты 34 секунды
Программа должна выполнять следующие функции:
• отображать имя логического диска в управляющем элементе ComboBox;
• отображать общую информации о диске : метку тома, серийный номер диска, имя файловой системы, количество секторов в одном кластере, количество байтов в одном секторе, размер диска в байтах, размер свободного пространства на дисках в байтах, размер занятого дискового пространства в байтах.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2009, 20:02
Ответы с готовыми решениями:

Windows 7 не видит логические диски
На новый компьютер оставил старый диск который использовался как файлохранилище. Диск был разбит на три логических. При установке ОС...

Разбить диск на логические диски в Windows 7
Здравствуйте! Поясните пожалуйста как правильно разбить диск 1Тб? Логический системный диск С на 48Гб есть,в мой компьютер больше ничего не...

Операционной системе Windows исполнилось 25 лет
Ровно 25 лет назад, 20 ноября 1985 года, вышла первая версия операционной системы Windows 1.0. Билл Гейтс во время анонса тогда сказал, что...

27
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
05.05.2009, 21:03
что это значит?
жжешь, однако :lol:
у тебя подружки есть? приводи их сюда, чувствую, будет аДДски весело :green:

Открой в студии файл с исходником, щелкни мышкой на эту строку и нажми Ctrl+L
0
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
05.05.2009, 21:08  [ТС]
всё скомпилировалось,но не показывает остальной информации,а только функцию GetLogicalDriveStrings,в чем может быть проблема?

Добавлено через 1 минуту 2 секунды
Цитата Сообщение от Rififi Посмотреть сообщение
что это значит?
жжешь, однако :lol:
у тебя подружки есть? приводи их сюда, чувствую, будет аДДски весело :green:

Открой в студии файл с исходником, щелкни мышкой на эту строку и нажми Ctrl+L
язвить было необязательно,да я не очень хорошо разбираюсь,но умный человек не стал бы над этим смеятся,а просто помог бы
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
05.05.2009, 21:19
Дашустрик,
... просто помог бы ...
А что, Ctrl+L не сработал?
0
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
05.05.2009, 21:25  [ТС]
ты внимательно прочитал сообщение?
0
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
06.05.2009, 23:51
Я же писал, что нужно еще сделать:
Цитата Сообщение от Alexiski Посмотреть сообщение
Только вызов этой самой функции GetVolumeInfo надо будет добавить в районе строки 106 примерно так:
C++
1
2
3
4
char* sVolInfo = VolumeInfo(sDrivePath);
msg += sVolInfo;
delete[] sVolInfo;
msg += '\n';
0
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
07.05.2009, 01:50  [ТС]
добавила:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <windows.h>
#include <tchar.h>
#include <string>
#include <iostream>
 
 
 
 
using namespace std; // для класса строки
 
//////////////////
// Простая таблица соответствия кодов из GetDriveType и читабельным
// названиям типов дисков
//
struct {
UINT type; // возвращаемый код из GetDriveType
LPCSTR name; // ascii имя
} DriveTypeFlags [] = {
{ DRIVE_UNKNOWN, "Unknown" },
{ DRIVE_NO_ROOT_DIR, "Invalid path" },
{ DRIVE_REMOVABLE, "Removable" },
{ DRIVE_FIXED, "Fixed" },
{ DRIVE_REMOTE, "Network drive" },
{ DRIVE_CDROM, "CD-ROM" },
{ DRIVE_RAMDISK, "RAM disk" },
{ 0, NULL},
};
char *GetVolumeInfo (char *Volume)
{
        char Name [MAX_PATH];
        char FileSysName [256];
        DWORD SerialNumber;
        DWORD MaxLength;
        DWORD FileSysFlags;
        DWORD SectorsPerCluster;
        DWORD BytesPerSector;
        DWORD NumberOfFreeClusters;
        DWORD TotalNumberOfClusters;
    
        char *str = new char[MAX_PATH];
        if (GetVolumeInformation (
                        Volume,
                        Name,
                        256,
                        &SerialNumber,
                        &MaxLength,
                        &FileSysFlags,
                        FileSysName,
                        256))
        {
                GetDiskFreeSpace (
                        Volume,
                        &SectorsPerCluster,
                        &BytesPerSector,
                        &NumberOfFreeClusters,
                        &TotalNumberOfClusters);
 
                sprintf(str,"\t## VOLUME %s INFO",Volume);
                sprintf(str,"%s\n Name : %s",str,Name);
                sprintf(str,"%s\n Serial number \t: %i",str,SerialNumber);
                sprintf(str,"%s\n File system \t: %s",str,FileSysName);
 
                sprintf(str,"%s\n SectorsPerCluster \t: %d",str,SectorsPerCluster);
                sprintf(str,"%s\n BytesPerSector \t: %d",str,BytesPerSector);
                sprintf(str,"%s\n NumberOfFreeClusters : %d",str,NumberOfFreeClusters);
                sprintf(str,"%s\n TotalNumberOfClusters :%d",str,TotalNumberOfClusters);
                sprintf(str,"%s\n Free space \t: %.2f%s",
                        str,100.0*NumberOfFreeClusters/TotalNumberOfClusters,"%");
        }
         else
                 sprintf (str,"\t## WRONG VOLUME NAME OR NOT READY!");
         return str;
};
//////////////////
// Стандартная функция tmain
//
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
 
// Получаем строки логических дисков— a:\b:\c:\... и т.д.
//
TCHAR buf[100];
DWORD len = GetLogicalDriveStrings(sizeof(buf)/sizeof(TCHAR),buf);
 
// Показываем информацию о каждом диске.
//
string msg = "Logical Drives:\n"; // строка STL
for (TCHAR* s=buf; *s; s+=_tcslen(s)+1) {
TCHAR * sDrivePath = s;
msg += sDrivePath;
msg += " ";
 
// GetDriveType получает одно из перечисленных значений
// DRIVE_UNKNOWN, и т.д.
//
UINT uDriveType = GetDriveType(sDrivePath);
 
// Находим тип диска в таблице.
//
for (int i=0; DriveTypeFlags[i].name; i++) {
if (uDriveType == DriveTypeFlags[i].type) {
msg += DriveTypeFlags[i].name;
break;
}
}
char* sVolInfo = VolumeInfo(sDrivePath);
msg += sVolInfo;
delete[] sVolInfo;
msg += '\n';
}
cout << msg.c_str();
 
Sleep(2000);
return 0;
}
2 ошибки:
C:\Documents and Settings\Дашустрик\Рабочий стол\Систематичное программирование\3\3.cpp(107) : error C2065: 'VolumeInfo' : undeclared identifier
C:\Documents and Settings\Дашустрик\Рабочий стол\Систематичное программирование\3\3.cpp(107) : error C2440: 'initializing' : cannot convert from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
0
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
07.05.2009, 02:26
Это я ошибся, функция-то называется GetVolumeInfo, а я написал просто VolumeInfo, вот она и не находит.

В строке 107:
C++
1
char* sVolInfo = GetVolumeInfo(sDrivePath);
1
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
08.05.2009, 13:54  [ТС]
спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2009, 13:54

Операционной системе Windows XP исполнилось 10 лет
Ровно 10 лет назад корпорация Microsoft начала поставки первых копий операционной системы Windows XP. За прошедшее десятилетие эта ОС стала...

Ошибка 7023 в операционной системе windows xp pack 2
подскажите в какой раздел мне обратиться чтобы попросить помощь в устранении ошибки Заранее благодарен

Ноутбук Lenovo с windows 8, как разделить диск С на логические диски?
купила ноутбук Lenovo с windows 8, хочу разделить диск С, чтобы отдельно хранить свою информацию. но не получается. пробовала программой...

Логические диски
Здравствуйте! У меня такой вопрос как определить количество дисков и их имена???

2 сервера и логические диски!
Доброго времени суток Уважаемые форумчане!!!! Есть такая проблемка: на предприятии имеются 2 ссервера! Планируется сделать так чтобы...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
alhaos 16.06.2026
Insert Delete GetRandom O(1) Сложность: Medium Источник: LeetCode 380 Задача Реализовать структуру данных RandomizedSet, которая поддерживает следующие операции за O(1) в среднем:
Свет в конце тоннеля
kumehtar 16.06.2026
Поймал себя на одной мысли. Раньше мне всегда казалось неправильным жить без чёткого понимания, куда всё идёт. Будто я иду по дороге судьбы, но не знаю, куда она ведёт. А раз не знаю — значит,. . .
[golang] Реализация стека с поддержкой получения минимального элемента за O(1)
alhaos 16.06.2026
Min Stack Сложность: Medium Источник: LeetCode 155 Задача: Реализовать стек который поддерживает push, pop, top и получение минимального элемента за O(1). Методы:
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru