Obtener información sobre el dispositivo físico a partir de una ruta de archivo determinada

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

  •  02-07-2019
  •  | 
  •  

Pregunta

Suponga que tiene una ruta completa a un archivo o carpeta accesible en el sistema.¿Cómo puedo obtener algún tipo de identificador único para el dispositivo físico en el que realmente reside el archivo (o carpeta)?

Mi primer intento fue utilizar System.IO.DriveInfo lo cual depende de tener una letra de unidad.Pero las rutas UNC y las múltiples unidades de red asignadas al mismo dispositivo físico en un servidor añaden algunas complicaciones.Por ejemplo, estas 3 rutas apuntan a la misma carpeta en el mismo dispositivo.

\\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\)

En última instancia, mi objetivo es tomar estos múltiples caminos e informar la cantidad de espacio libre y utilizado en el disco en cada dispositivo.Quiero combinar estas 3 rutas en un solo elemento del informe y no en 3 elementos separados.

¿Existe alguna API de Windows que pueda ayudar a encontrar esta información dada una ruta completa arbitraria?

¿Fue útil?

Solución

Esta llamada API de Win debería brindarle lo que necesita con respecto al espacio en disco

  GetDiskFreeSpaceEx

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

Además, para determinar si las tres asignaciones son todas del mismo disco físico, realice una llamada a

GetVolumeInformation

y compare los números de serie del volumen devuelto

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top