Ottenere informazioni sul dispositivo fisico da un determinato percorso di file

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

  •  02-07-2019
  •  | 
  •  

Domanda

Supponi di avere un percorso completo per un file o una cartella accessibile sul sistema. Come posso ottenere una sorta di identificatore univoco per il dispositivo fisico su cui risiede effettivamente il file (o la cartella)?

Il mio primo tentativo è stato di usare System.IO.DriveInfo che dipende dall'avere una lettera di unità. Ma i percorsi UNC e le unità di rete multiple associate allo stesso dispositivo fisico su un server aggiungono alcune complicazioni. Ad esempio, questi 3 percorsi puntano tutti alla stessa cartella sullo stesso 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\)

Alla fine il mio obiettivo è prendere questi percorsi multipli e segnalare la quantità di spazio su disco utilizzato e libero su ciascun dispositivo. Voglio combinare questi 3 percorsi in un singolo elemento nel rapporto e non 3 elementi separati.

C'è qualche API di Windows che può aiutare a trovare queste informazioni dato un percorso completo arbitrario?

È stato utile?

Soluzione

Questa chiamata API Win dovrebbe fornirti ciò di cui hai bisogno per quanto riguarda lo spazio su disco

  GetDiskFreeSpaceEx

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

Inoltre, per determinare se i tre mapping sono tutti dallo stesso disco fisico, eseguire una chiamata a

GetVolumeInformation

e confronta i numeri di serie del volume restituito

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top