Программно назначить новую букву существующему диску с помощью С++

Я хочу изменить букву диска. Например, я могу использовать diskpart, чтобы назначить новую букву диску (USB-диску или новый жесткий диск).

Как я могу реализовать это на C/C++?


person mark    schedule 21.01.2010    source источник
comment
Я наткнулся на эту статью на msdn. Может кому поможет (это было именно то, что я искал).   -  person    schedule 14.11.2010
comment
Проверьте следующие ссылки: msdn .microsoft.com/en-us/library/windows/desktop/ (это пример с исходным кодом, очень полезный для того, что вы хотите сделать) И ссылка на функцию DefineDosDevice: msdn.microsoft.com/en-us/library /windows/desktop/ Надеюсь, это поможет   -  person MrTheV    schedule 10.01.2013


Ответы (2)


SetVolumeMountPoint(L"X:\", volumeName.c_str())

person MSalters    schedule 21.01.2010
comment
Из документов... каталог на другом томе (например, Y:\MountX). Строка должна заканчиваться обратной косой чертой ('\'). -- это отличный плохой пример. - person Ruddy; 21.01.2010
comment
Да, к счастью, этот пример неуместен в данном случае. - person MSalters; 21.01.2010

Тривиальный и простой способ сделать это — просто раскошелиться на diskpart:

int main () {
  int i = system("diskpart ..."); // Add args here.
  cout << "command exited with code: " << i;
  // ...
}

У него есть параметр /s, который вы можете использовать для предоставления сценария для запуска внутри diskpart, так что вы можете просто написать текстовый файл с соответствующими подкомандами и передать его в diskpart с вашим вызовом system(...).

person John Feminella    schedule 21.01.2010
comment
спасибо, это мой последний выбор, если я не могу реализовать его с помощью кода С++ - person mark; 21.01.2010