指定されたファイルパスから物理デバイスに関する情報を取得する
質問
システム上でアクセス可能なファイルまたはフォルダーへの絶対パスがあるとします。ファイル (またはフォルダー) が実際に存在する物理デバイスの一意の識別子を取得するにはどうすればよいですか?
私の最初の試みは使用することでした 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
所属していません StackOverflow