[Предполагая Windows, учитывая замечание C #. Пожалуйста, отметьте соответственно]
Да, это возможно. И можно получить подробную информацию о файле. Это потребует программирования, хотя. Наблюдайте за WM_DEVICECHANGE и затем пересчитывайте диски. Он получит USB-порт, а также SD-карты. Я ожидаю, что это бонус для вас.
Чтобы получить более подробную информацию, когда вы знаете, что накопитель прибыл, используйте System.IO.FileSystemWatcher
Обновление
Я нашел лучшее решение - если вы зарегистрируетесь для уведомлений интерфейса тома, вы получите путь к тому для нового диска.
Сначала создайте DEV_BROADCAST_DEVICEINTERFACE
с dbcc_classguid=GUID_DEVINTERFACE_VOLUME
. Затем передайте это RegisterDeviceNotification()
. Вы снова получите WM_DEVICECHANGE, но теперь вы можете разыграть lParam из сообщения на DEV_BROADCAST_DEVICEINTERFACE*
.
Вы можете передать dbcc_name
, который вы получите, GetVolumeNameForVolumeMountPoint()
. Вы также можете передать все буквы дисков от GetLogicalDriveStrings()
до GetVolumeNameForVolumeMountPoint()
. У вас будет одно соответствующее имя тома; это новый диск.