0

Я использую интерфейс IShellFolder для перечисления объектов пространства имен Shell. Выполняя это, я получаю подключенные сетевые диски, некоторые из которых связаны и доступны, а другие нет.Как определить, отключен ли подключенный сетевой диск, используя IShellFolder?

Я хотел бы знать, как я могу определить, доступен ли конкретный подключенный диск. Есть ли какой-нибудь метод, функция или атрибут оболочки, которые я могу использовать?

Я использую метод IShellFolder.GetAttributesOf() для получения различных атрибутов на диске, но не вижу ничего там, что указывало бы это.

ответ

0

Если подключенный диск отсоединен, он не появится в битовой маске, возвращаемой функцией GetLogicalDrives.

Например,

wchar_t wchDriveLetter = L'P'; // example 
int iDriveNumber = towupper(wchDriveLetter) - L'A'; 
bool fIsDisconnected = (GetLogicalDrives() & (1 << iDriveNumber)) == 0;