[C# の発言を考えると、Windows を想定しています。それに応じてタグ付けしてください]
はい、可能です。そして、ファイルの詳細を取得することができます。ただし、プログラミングが必要になります。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()
ます。一致するボリューム名が 1 つあります。これが新しいドライブです。