char NameBuffer[MAX_PATH];
char SysNameBuffer[MAX_PATH];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;
if (GetVolumeInformation("C:\\",NameBuffer, sizeof(NameBuffer),
&VSNumber,&MCLength,&FileSF,SysNameBuffer,sizeof(SysNameBuffer)))
{
cout << NameBuffer << endl;
cout << SysNameBuffer << endl;
cout << VSNumber << endl;
}
Volume Management
Что-то типа GetVolumeInformation, наверное. Но не "С:\\","А:\\", а имена разделов, крые определил пользователь.:)
Ваш вопрос уже содержит ответ:
Да дело в том что из мсдн из этого раздела уже все перепробовано))
Хорошо, тогда конкретнее, что есть на входе, а что нужно получить на выходе?
Ну или конкретно буква логич диска.
Выход: имя диска (то, что задано юзером - ну знаете, типа System и прочая)
Если есть список то чем не подходит GetVolumeInformation, у нее на входе lpRootPathName, а на выходе lpVolumeNameBuffer?
Спасибо, Ramon, за поддержку :D
Код:
#include <tchar.h>
...
TCHAR NameBuffer[MAX_PATH + 1];
TCHAR SysNameBuffer[MAX_PATH + 1];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;
if (GetVolumeInformation(_T("C:\\"),NameBuffer, sizeof(NameBuffer),
&VSNumber,&MCLength,&FileSF,SysNameBuffer,sizeof(SysNameBuffer)))
{
wcout << NameBuffer << endl;
wcout << SysNameBuffer << endl;
wcout << VSNumber << endl;
}
...
TCHAR NameBuffer[MAX_PATH + 1];
TCHAR SysNameBuffer[MAX_PATH + 1];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;
if (GetVolumeInformation(_T("C:\\"),NameBuffer, sizeof(NameBuffer),
&VSNumber,&MCLength,&FileSF,SysNameBuffer,sizeof(SysNameBuffer)))
{
wcout << NameBuffer << endl;
wcout << SysNameBuffer << endl;
wcout << VSNumber << endl;
}
Лучше все же юзать юникод.
PS: Бывает, иногда полезно проверить исходные условия ;)
Цитата:
Лучше все же юзать юникод.
А чем юникод лучше?
Юникод лучше своим наличием и универсальностью, без него можно интересные побочные эффекты в приложениях наблюдать, аля крякозяблики вместо осмысленного текста, ошибки при открытии файлов с необычными названиями на каком нибудь китайском и тд и тп. Так что пользовать юникод очень полезно.