3

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

私の最初の試みは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 はありますか?

4

1 に答える 1

2

この 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

于 2008-09-22T16:40:40.523 に答える