假设您拥有系统上可访问文件或文件夹的完整路径。如何为文件(或文件夹)实际驻留的物理设备获取某种唯一标识符?
我的第一次尝试是使用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可以帮助在任意完整路径下找到此信息?
答案 0 :(得分: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