2008-09-22 62 views
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可以帮助找到任何任意完整路径的信息?

回答

2

这场比赛的胜利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

+0

但是,当我在这个函数中传递这3条路径中的每条路径时,我会得到3个答案 - 是的,它们都是相同的,但我怎么能确定它们都驻留在相同的物理设备? – 2008-09-22 16:56:53