Obtenção de informações sobre o dispositivo físico de um determinado caminho de arquivo

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

  •  02-07-2019
  •  | 
  •  

Pergunta

Suponha que você tenha um caminho completo para um arquivo acessível ou pasta no sistema. Como posso obter algum tipo de identificador exclusivo para o dispositivo físico que o arquivo (ou pasta), na verdade, reside em?

Minha primeira tentativa foi usar System.IO.DriveInfo que depende de ter uma letra de unidade. Mas os caminhos UNC e várias unidades de rede mapeadas para o mesmo dispositivo físico em um servidor adicionar algumas complicações. Por exemplo, estes 3 caminhos apontam para a mesma pasta no mesmo 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\)

Em última análise, o meu objetivo é levar esses vários caminhos e informar a quantidade de espaço em disco usado e livre em cada dispositivo. Eu quero combinar estes 3 caminhos em um único item no relatório e não 3 itens separados.

Existe alguma API do Windows que pode ajudar a encontrar essa informação dada qualquer caminho completo arbitrária?

Foi útil?

Solução

Esta chamada vitória API deve obter o que você precisa sobre espaço em disco

  GetDiskFreeSpaceEx

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

Além disso, para determinar se os três mapeamentos todos são do mesmo disco físico, execute uma chamada para

GetVolumeInformation

e comparar os números de série de volume retornou

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top