指定されたファイルパスから物理デバイスに関する情報を取得する

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

  •  02-07-2019
  •  | 
  •  

質問

システム上でアクセス可能なファイルまたはフォルダーへの絶対パスがあるとします。ファイル (またはフォルダー) が実際に存在する物理デバイスの一意の識別子を取得するにはどうすればよいですか?

私の最初の試みは使用することでした System.IO.DriveInfo これはドライブ文字があるかどうかによって決まります。ただし、UNC パスと複数のネットワーク ドライブがサーバー上の同じ物理デバイスにマップされていると、さらに複雑になります。たとえば、これらの 3 つのパスはすべて、同じデバイス上の同じフォルダーを指します。

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

最終的な私の目標は、これらの複数のパスをたどって、各デバイスの使用済みディスク容量と空きディスク容量をレポートすることです。これら 3 つのパスを、レポート内の 3 つの個別のアイテムではなく 1 つのアイテムに結合したいと考えています。

任意のフルパスを指定してこの情報を見つけるのに役立つ Windows API はありますか?

役に立ちましたか?

解決

この Win API 呼び出しにより、ディスク容量に関して必要なものが得られます。

  GetDiskFreeSpaceEx

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

また、3 つのマッピングがすべて同じ物理ディスクからのものであるかどうかを判断するには、次の呼び出しを実行します。

GetVolumeInformation

返されたボリューム シリアル番号を比較します

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top