Предположим, у вас есть полный путь к доступному файлу или папке в системе. Как я могу получить какой-то уникальный идентификатор физического устройства, на котором фактически находится файл (или папка)?
Моей первой попыткой было использовать 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, который может помочь найти эту информацию по любому произвольному полному пути?