Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Volume Management

22K
25 октября 2009 года
FloyDos
81 / / 14.08.2009
Существует ли функция, возвращающая имя логического диска по его букве? Или просто список имен разделов...

Что-то типа GetVolumeInformation, наверное. Но не "С:\\","А:\\", а имена разделов, крые определил пользователь.:)
260
25 октября 2009 года
Ramon
1.1K / / 16.08.2003
Ваш вопрос уже содержит ответ: Volume Management:D
22K
25 октября 2009 года
FloyDos
81 / / 14.08.2009
Да дело в том что из мсдн из этого раздела уже все перепробовано))
260
25 октября 2009 года
Ramon
1.1K / / 16.08.2003
Хорошо, тогда конкретнее, что есть на входе, а что нужно получить на выходе?
22K
25 октября 2009 года
FloyDos
81 / / 14.08.2009
На входе - список логических дисков.. допустим, в их буквенных обозначениях
Ну или конкретно буква логич диска.
Выход: имя диска (то, что задано юзером - ну знаете, типа System и прочая)
260
25 октября 2009 года
Ramon
1.1K / / 16.08.2003
Если есть список то чем не подходит GetVolumeInformation, у нее на входе lpRootPathName, а на выходе lpVolumeNameBuffer?
22K
25 октября 2009 года
FloyDos
81 / / 14.08.2009
Код:
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;
    }


NameBuffer в итоге - пустая строка:confused:
22K
25 октября 2009 года
FloyDos
81 / / 14.08.2009
а черт все правильно, я лох полнейший. спасибо, я на чужом компе не заметила что диск С: не назван никак... млин вот тупица.. 3 часа поисков и проб коту под одно место... первую же эту функцию пробовала...убейте меня...
Спасибо, Ramon, за поддержку :D
260
25 октября 2009 года
Ramon
1.1K / / 16.08.2003
Код:
#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;
    }


Лучше все же юзать юникод.

PS: Бывает, иногда полезно проверить исходные условия ;)
22K
25 октября 2009 года
FloyDos
81 / / 14.08.2009
Цитата:
Лучше все же юзать юникод.


А чем юникод лучше?

260
25 октября 2009 года
Ramon
1.1K / / 16.08.2003
Юникод лучше своим наличием и универсальностью, без него можно интересные побочные эффекты в приложениях наблюдать, аля крякозяблики вместо осмысленного текста, ошибки при открытии файлов с необычными названиями на каком нибудь китайском и тд и тп. Так что пользовать юникод очень полезно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог