Obtention d'informations sur le périphérique physique à partir d'un chemin de fichier donné

StackOverflow https://stackoverflow.com/questions/115874

  •  02-07-2019
  •  | 
  •  

Question

Supposons que vous avez un chemin complet vers un fichier ou un dossier accessible sur le système. Comment puis-je obtenir un identifiant unique pour le périphérique physique sur lequel réside le fichier (ou le dossier)?

Ma première tentative a été d'utiliser System.IO.DriveInfo , ce qui dépend de la présence d'une lettre de lecteur. Mais les chemins UNC et plusieurs lecteurs réseau mappés sur le même périphérique physique sur un serveur ajoutent certaines complications. Par exemple, ces 3 chemins pointent tous vers le même dossier sur le même périphérique.

\\myserver\users\brian\public\music\
s:\users\brian\public\music\          (here s:\ is mapped to \\myserver\)
u:\public\users\music\                (here u:\ is mapped to \\myserver\users\brian\)

Mon objectif ultime est d’emprunter ces chemins multiples et de signaler la quantité d’espace disque utilisé et libre sur chaque périphérique. Je souhaite combiner ces 3 chemins en un seul élément du rapport et non pas en 3 éléments distincts.

Existe-t-il une API Windows qui puisse aider à trouver cette information si un chemin complet est arbitraire?

Était-ce utile?

La solution

Cet appel API gagnant devrait vous procurer ce dont vous avez besoin en matière d'espace disque

  GetDiskFreeSpaceEx

http://msdn.microsoft.com/ en-us / library / aa364937 (VS.85) .aspx

En outre, pour déterminer si les trois mappages proviennent tous du même disque physique, appelez

.
GetVolumeInformation

et comparez les numéros de série du volume renvoyé

http://msdn.microsoft.com/ en-us / library / aa364993 (VS.85) .aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top