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 个单独的项目。

在给定任意完整路径的情况下,是否有任何 Windows API 可以帮助查找此信息?

4

1 回答 1

2

这个 win API 调用应该可以为您提供有关磁盘空间的信息

  GetDiskFreeSpaceEx

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

此外,要确定这三个映射是否都来自同一个物理磁盘,请调用

GetVolumeInformation

并比较返回的卷序号

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

于 2008-09-22T16:40:40.523 回答