2010-01-21 22 views
3

Je souhaite modifier une lettre de lecteur. Par exemple, je peux utiliser diskpart pour attribuer une nouvelle lettre à un lecteur (un disque USB ou un nouveau disque dur).Affectez par programme une nouvelle lettre au lecteur existant avec C++

Comment puis-je l'implémenter en C/C++?

+0

je suis tombé sur [cet article] (http://msdn.microsoft.com/en-us/library/aa364014.aspx) sur msdn. Peut-être que ça aide quelqu'un (c'était exactement ce que je cherchais). –

+0

Vérifiez les liens suivants: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364014%28v=vs.85%29.aspx (Celui-ci est un exemple avec le code source, très utile pour ce que vous voulez faire) Et la référence à la fonction "DefineDosDevice": http://msdn.microsoft.com/fr-fr/library/windows/desktop/aa363904%28v=vs.85%29.aspx Hope cela aide – MrTheV

Répondre

1

Une façon triviale et facile à faire serait de bombarder juste en dehors de diskpart:

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

Il a un paramètre /s que vous pouvez utiliser pour fournir un script à exécuter à l'intérieur diskpart, de sorte que vous pouvez simplement écrivez un fichier texte avec les sous-commandes pertinentes et transmettez-le en diskpart avec votre appel system(...).

+0

merci, c'est mon dernier choix si je ne peux pas l'implémenter avec le code C++ – mark

1
+0

De la docs "... un répertoire sur un autre volume (par exemple, Y: \ MountX) .La chaîne doit se terminer par un trailing barre oblique inverse ('\'). " - C'est un bon exemple * mauvais *. – Ruddy

+0

Oui, heureusement, cet exemple n'est pas pertinent dans ce cas. – MSalters