まず第一に、私が自分の問題に間違った方法で取り組んでいる可能性が非常に高いです。その場合、代替案を喜んで受け入れます。
私が達成しようとしているのは、USB デバイスがコンピューターに接続された後に作成されたドライブを検出することです。
簡略化されたワークフローは次のとおりです。
// Get list of removable drives before user connects the USB cable
List<string> listRemovableDrivesBefore = GetRemovableDriveList();
// Tell user to connect USB cable
...
// Start listening for a connection of a USB device
...
// Loop until device is connected or time runs out
do
{
...
} while
// Get list of removable drives after USB device is connected
List<string> listRemovableDrivesAfter = GetRemovableDriveList();
// Find out which drive was created after USB has been connected
???
GetRemovableDriveList
リムーバブル ドライブ文字の文字列のリストを返します。私のアイデアは、デバイスが接続される前にリムーバブル ドライブのリストを取得し、接続後に別のリストを取得することでした。最初のリストの内容を 2 番目のリストから削除すると、接続されたばかりのドライブが残ります (通常は、唯一)。
しかし、あるリストを別のリストから「差し引く」簡単な方法が見つかりません。誰でも解決策、または私がやろうとしていることを達成するためのより良い方法を提案できます.
注: プロジェクトは .NET Framework 2.0 を対象としているため、LINQ は使用できません。
ありがとう!