私はEnvironment.GetLogicalDrives();を使用しています。ドライブのリストを取得します。C ++では、GetDriveTypeを使用して、デバイスがCD、リムーバブル、フラッシュなどであるかどうかを確認できました。アプリにフィルターを配置して、デフォルトでCDとリムーバブルのみを表示したいと考えています。C#で同等のGetDriveTypeとは何ですか?グーグルは私にc++呼び出しを使用するためのハックを示しただけです。
8225 次
4 に答える
12
DriveInfoタイプを使用して、ドライブのリストを取得できます。DriveTypeプロパティ(列挙型)を確認する必要があります
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
if (drive.DriveType == DriveType.Removable)
{
Console.WriteLine(drive.Name);
}
}
LINQ-to-Objectsを使用してドライブにクエリを実行することもできます。
var drives = from drive in DriveInfo.GetDrives()
where drive.DriveType == DriveType.Removable
select drive;
foreach(var drive in drives)
{
Console.WriteLine(drive.Name);
}
前述の@TheCodeKingと同様に、WMIを使用してドライブ情報を照会することもできます。
たとえば、次の方法でUSBスティックを照会できます。
ManagementObjectCollection drives = new ManagementObjectSearcher(
"SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();
WMIを使用する場合は、System.Managementアセンブリへの参照を追加します。
WindowsフォームアプリケーションのComboBoxにこのデータを入力する場合は、結果をComboBoxコントロールにバインドする必要があります。
例えば:
private void Form1_Load(object sender, EventArgs e)
{
var drives = from drive in DriveInfo.GetDrives()
where drive.DriveType == DriveType.Removable
select drive;
comboBox1.DataSource = drives.ToList();
}
要約すると:
- ComboBoxコントロールをWindowsフォームに追加します(ツールボックスからフォームにドラッグアンドドロップします)
- リムーバブルドライブを照会します。
- 結果をComboBoxにバインドします。
于 2011-08-30T08:08:47.230 に答える
8
はい、フレームワークには、 DriveInfoクラスで使用されるDriveType列挙が含まれています。MSDNのGetDrives()メソッドをご覧ください。
于 2009-03-08T08:08:13.807 に答える
2
DriveInfoはあなたが探しているクラスです。
于 2009-03-08T08:08:24.163 に答える
1
これにはWMIを使用しています。情報と例については、このリンクを確認してください。
于 2011-08-30T08:09:51.003 に答える