Вопрос № 19279: Привет!
Как можно получить список всех дисков компьютера и сетевых папок?...
Вопрос № 19279
Привет!
Как можно получить список всех дисков компьютера и сетевых папок?
Отправлен: 05.04.2005, 19:43
Вопрос задал: Торба Андрей Николаевич (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: John Freeman
Здравствуйте, Торба Андрей Николаевич!
1) GetLogicalDrives(результат - bitmask), GetLogicalDriveStrings(результат - строки)
2) К NetBios, для локального - ключи в реестре в Lanmanserver\
Ответ отправил: John Freeman (статус: Профессионал)
Отправлен: 05.04.2005, 21:18
Отвечает: Gregory
Здравствуйте, Торба Андрей Николаевич!
Для получения дисков можно воспользоваться функцией GetLogicalDrives или функцией GetLogicalDriveStrings. Для перечисления сетевых папок воспользуйтесь функцией NetShareEnum.
Ответ отправил: Gregory (статус: 1-ый класс)
Отправлен: 06.04.2005, 02:10
Отвечает: Raptor1
Здравствуйте, Торба Андрей Николаевич!
Вот набросал тут на скорую руку, только флешка получается как floppy
void EnumDriveList()
{
char Buffer[512];
memset(Buffer,0,512);
DWORD dwSize=GetLogicalDriveStrings(512,Buffer);
DWORD dwFlow=0;
CString strTemp;
CString strRez;
while(dwFlow<dwSize)
{
strTemp=Buffer+dwFlow;
if(strTemp.GetLength()!=0)
{
switch(GetDriveType(strTemp))
{
case DRIVE_UNKNOWN:
{
strRez=strTemp+": UNKNOWN";
break;
}
case DRIVE_NO_ROOT_DIR:
{
strRez=strTemp+": INVALID PATH";
break;
}
case DRIVE_REMOVABLE:
{
strRez=strTemp+": FLOPPY";
break;
}
case DRIVE_FIXED:
{
strRez=strTemp+": HDD";
break;
}
case DRIVE_REMOTE:
{
strRez=strTemp+": NETWORK";
break;
}
case DRIVE_CDROM:
{
strRez=strTemp+": CDROM";
break;
}
case DRIVE_RAMDISK:
{
strRez=strTemp+": VIRTUAL";
break;
}
}
// это CListBox
m_ctrlDrive.AddString(strRez);
}
dwFlow+=strTemp.GetLength()+1;
}
}
Ответ отправил: Raptor1 (статус: 2-ой класс)
Отправлен: 07.04.2005, 23:04