Вы должны использовать интерфейсы Shell, а именно IShellFolder
и IEnumIDList
.
Чтобы получить IShellFolder
для папки "Internal storage"
, вы можете:
Использование SHGetDesktopFolder()
получить IShellFolder
для корня пространства имен Shell, а затем передать "Computer\SUPRA_M727G\Internal storage"
строку своему методу IShellFolder::ParseDisplayName()
, чтобы получить absolute ITEMIDLIST
что вы можете перейти к его методу IShellFolder::BindToObject()
.
Использование SHParseDisplayName()
или ILCreateFromPath()
преобразовать "Computer\SUPRA_M727G\Internal storage"
строки в абсолютную ITEMIDLIST
, что вы можете перейти на SHBindToObject()
с параметром psf
равного NULL
.
В любом случае, как только у вас есть IShellFolder
папки для хранения, вы можете использовать его метод IShellFolder::EnumObjects()
получить IEnumIDList
для перечисления своих файлов и вложенных папок. Перечисление даст вам относительный ITEMIDLIST
для каждого элемента. Чтобы получить имя каждого элемента в виде строки, пройдите каждый ITEMIDLIST
к его методу IShellFolder::GetDisplayNameOf()
, а затем передайте возвращенный STRRET
в одну из функций StrRetTo...()
(StrRetToBSTR()
, StrRetToBuf()
или StrRetToStr()
).
Обратитесь к MSDN для получения более подробной информации:
Introduction to the Shell Namespace
Navigating the Shell Namespace
Как мы должны знать? Мы не знаем, что такое устройство или как оно установлено, или что делает его драйвер. Все, что мы знаем, это то, что он называется «КОМПЬЮТЕР» в представлении графического пути проводника Windows Explorer. –
Это устройство представляет собой внутреннее хранилище Android, которое установлено через протокол MTP. Я не могу получить файлы с этого устройства, потому что я знаю только, как читать файлы с логических дисков, имеющих букву. – Vladimir
Локальные диски (или тома, правда) не имеют букв дисков. Буквы дисков - это остатки прошлого, с того времени, пока вы еще не родились. Вместо этого тома ссылаются по имени во всей системе. Имена томов имеют синтаксис: \\? \ Volume {GUID} \. Дополнительную информацию см. В разделе [Именование тома] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365248.aspx). Буквы на диске - это не что иное, как удобство и бремя совместимости. – IInspectable