Comment obtenir des informations sur le lecteur par id de volume
J'ai un fichier txt avec le volume id est en elle.
Ai besoin de voiture info (lettre de lecteur, de la taille du disque, etc.) à partir du lecteur id de volume (Windows):
le volume id est dans le format suivant:
\\?\Volume{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
Le lecteur peut être Amovible/disque local
Il n'a pas d'importance comment l'info est récupéré (il pourrait être de script, cpp ,c#, java code).
EDIT:
J'ai essayé d'utiliser DriveInfo, Win32_LogicalDisk, Win32_Volume, Win32_PnpDevices - mais je ne pouvais pas trouver cela bizarre id... dans tous les cas, l'id a une differrent format
Mise à JOUR:
Trouvé comment faire.
vous pouvez énumérer Win32_Volume comme ceci:
ManagementObjectSearcher ms = new ManagementObjectSearcher("Select * from Win32_Volume");
foreach(ManagementObject mo in ms.Get())
{
var guid = mo["DeviceID"].ToString();
if(guid == myGuid)
return mo["DriveLetter"];
}
Comment avez-u obtenir que l'id dans le fichier txt. Désosser pour atteindre les résultats.
Je suis en train de suivre où "Historique des Fichiers" (nouvelle fonctionnalité de windows 8) est savingi ses fichiers de sauvegarde. J'ai trouvé que le nom du périphérique cible est enregistrée dans un fichier xml, il permet aussi d'économiser la lettre de lecteur et le nom, mais ce n'est pas suffisant, car ces paramètres ne sont pas uniques et peuvent être modifiés: somene pouvez éjecter le périphérique et puis la prochaine fois il aura une autre lettre, etc... donc j'ai trouvé que microsoft enregistre également quelque chose qui ressemble à ce qui suit: "<TargetVolumePath> \\?\Volume{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} <\TargetVolumePath>" qui est l'id unique.
Je suis en train de suivre où "Historique des Fichiers" (nouvelle fonctionnalité de windows 8) est savingi ses fichiers de sauvegarde. J'ai trouvé que le nom du périphérique cible est enregistrée dans un fichier xml, il permet aussi d'économiser la lettre de lecteur et le nom, mais ce n'est pas suffisant, car ces paramètres ne sont pas uniques et peuvent être modifiés: somene pouvez éjecter le périphérique et puis la prochaine fois il aura une autre lettre, etc... donc j'ai trouvé que microsoft enregistre également quelque chose qui ressemble à ce qui suit: "<TargetVolumePath> \\?\Volume{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} <\TargetVolumePath>" qui est l'id unique.
OriginalL'auteur user844541 | 2012-04-17
Vous devez vous connecter pour publier un commentaire.
Taille du Volume, etc, c'est facile. Suffit d'utiliser la normale Win32 méthodes. Toute fonction qui accepte
"C:"
comme un lecteur acceptera également la GUID du volume chemin (parce que c'est ce qu'un\\?\Volume{XXX}
est bien appelé).La "lettre de lecteur" est un peu plus compliqué car il peut y avoir 0, 1 ou plusieurs lettres de lecteur. Vous devez appeler
FindFirstVolumeMountPoint /FindNextVolumeMountPoint /FindVolumeMountPointClose
pour obtenir toutes.Voir l'exemple sur msdn.microsoft.com/en-us/library/windows/desktop/...
OriginalL'auteur MSalters
Essayez d'utiliser cette
Pour plus de détails reed ce Win32_DiskDrive classe
OriginalL'auteur Likurg
Il n'y est une fonction de l'API pour cela:
GetVolumePathNamesForVolumeName
Elle renvoie une valeur null tableau, afin de permettre plusieurs points de montage. Si vous avez un seul point de montage (typique), alors vous pouvez le lire comme une chaîne terminée par null.
C'est plus efficace que l'énumération des disques/volumes, ce qui pourrait provoquer des disques inactifs à tourner.
OriginalL'auteur GravityWell
Vous pouvez utiliser
DriveInfo.GetDrives Méthode
pour obtenir de voiture info. Voici un exemple de code à partir de MSDNDriveInfo
qui concerne le GUID d'un lecteur.OriginalL'auteur ABH