5

システム内の固定ディスクのリストを取得したい。ただし、C#のGetDrives固定ドライブにはプラグUSBハードディスクが含まれています。

固定ドライブがUSBハードディスクではないこと、またはその逆であることをどのように検出できるか考えてみてください。

4

4 に答える 4

4

USBのシリアル番号を取得する方法からニックネームが付けられた解決策-C#でスティック:

 //import the System.Management namespace at the top in your "using" statement.
 ManagementObjectSearch theSearcher = new ManagementObjectSearcher(
      "SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'");
于 2009-11-03T09:04:31.863 に答える
3

DriveType を使用して、ドライブのタイプを検出します。

using System.IO;

DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
  if (d.IsReady && d.DriveType == DriveType.Fixed)
  {
    // This is the drive you want...
  }
}

DriveInfo クラス

EDIT1:

次のリンクを確認してください: ハード ドライブが USB 経由で接続されているかどうかを検出するにはどうすればよいですか?

于 2009-11-03T08:40:51.350 に答える
1

ここでは、USB ハードディスクのリストを取得できます。

//Add Reference System.Management and use namespace at the top of the code.
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'");

        foreach (ManagementObject queryObj in searcher.Get())
        {
            foreach (ManagementObject b in queryObj.GetRelated("Win32_DiskPartition"))
            {
                foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk"))
                { 
                    Console.WriteLine(String.Format("{0}" + "\\", c["Name"].ToString())); // here it will print USB drive letter
                }
            }

        }

ここでは、すべての固定ドライブ (システムおよび USB ハードディスク) のリストを取得できます。

        DriveInfo[] allDrives = DriveInfo.GetDrives(); 

        foreach (DriveInfo d in allDrives)
        {
            if (d.IsReady == true && d.DriveType == DriveType.Fixed)
            {
                Console.WriteLine("Drive {0}", d.Name);
                Console.WriteLine("  Drive type: {0}", d.DriveType);   
            }           
        }

それらを比較すると、システム内の固定ディスクのリストを取得できますが、USB ハードディスクはありません。

于 2015-09-08T08:29:19.960 に答える
0

個々の解決策 (ドライブ文字の検索を含む) については、この MSDN リンクを使用してください: WMI タスク: ディスクとファイル システム

于 2014-01-30T15:59:30.337 に答える