[VC2005] ドライブの一覧を取得する方法

◆概要

この資料は、Microsoft(R) Visual C# 2005で コンピュータに接続されているドライブの一覧を取得する方法について記述しています。

ManegementObjectクラスを利用すると、コンピュータに接続されている全てのドライブを簡単に取得できます。ネットワークで接続されているドライブも取得します。なお、以下のサンプルコードでは、DVDドライブはCD-ROMとして表示されます。

◆Sample code


using区に追加するコード
// Directoryクラスを利用するための宣言
using System.IO;
// ManagementObjectクラスを利用するための宣言
using System.Management;

フォームのコード
        private void button1_Click(object sender, EventArgs e)
        {
            ManagementObject mo = new ManagementObject();
            string[] driveType = Directory.GetLogicalDrives();
            ListViewItem lvi;

            foreach (string drive in driveType)
            {
                mo.Path = new ManagementPath("Win32_LogicalDisk='" +
                                             drive.TrimEnd('\\') + "'");

                switch (Convert.ToInt32(mo.Properties["DriveType"].Value))
                {
                    case 0:
                        lvi = listView1.Items.Add(drive.Substring(0, 1));
                        lvi.SubItems.Add("ドライブを判別できません");
                        break;
                    case 1:
                        lvi = listView1.Items.Add(drive.Substring(0, 1));
                        lvi.SubItems.Add("ドライブ上にルート" +
                                         "ディレクトリが存在しません");
                        break;
                    case 2:
                        lvi = listView1.Items.Add(drive.Substring(0, 1));
                        lvi.SubItems.Add("リムーバブルディスク");
                        break;
                    case 3:
                        lvi = listView1.Items.Add(drive.Substring(0, 1));
                        lvi.SubItems.Add("ハードディスク");
                        break;
                    case 4:
                        lvi = listView1.Items.Add(drive.Substring(0, 1));
                        lvi.SubItems.Add("ネットワークドライブ");
                        break;
                    case 5:
                        lvi = listView1.Items.Add(drive.Substring(0, 1));
                        lvi.SubItems.Add("CD-ROM");
                        break;
                    case 6:
                        lvi = listView1.Items.Add(drive.Substring(0, 1));
                        lvi.SubItems.Add("RAMディスク");
                        break;
                }
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "ドライブ一覧";
            listView1.Columns.Add("ドライブ", 50,
                                  HorizontalAlignment.Left);
            listView1.Columns.Add("種別", 150,
                                  HorizontalAlignment.Left);
            listView1.View = View.Details;
            listView1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom |
                               AnchorStyles.Left | AnchorStyles.Right;
        }

◆実行結果

実行結果



▼ページトップへ