Установить Drive VolumeLabel - PullRequest
7 голосов
/ 14 мая 2011

Я работаю над небольшой утилитой, в которой я хотел бы изменить метку тома на флэш-накопителях, подключенных к компьютеру.Я знаю, что DriveInfo способна это сделать, но я не знаю, как этого добиться.Если у кого-нибудь есть пример кода, я был бы очень признателен.
Вот что у меня сейчас есть:

DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
    if (d.IsReady && d.DriveType == DriveType.Removable)
    {
        //set volume label here
    }
}

Ответы [ 2 ]

5 голосов
/ 17 мая 2011

Спасибо, Джеймс!Я не знаю, почему у меня было так много проблем с этим, но вы заставили меня пойти по правильному пути.

Вот окончательный код для установки метки диска.Для всех, кто использует это, он изменит имя ЛЮБОГО съемного диска, подключенного к системе.Если вам нужно только изменить названия конкретных моделей дисков, вы можете использовать WMI Win32_DiskDrive, чтобы сузить его.

public void SetVolumeLabel(string newLabel)
{
    DriveInfo[] allDrives = DriveInfo.GetDrives();
    foreach (DriveInfo d in allDrives)
    {
        if (d.IsReady && d.DriveType == DriveType.Removable)
        {
            d.VolumeLabel = newLabel;
        }
    }
}

public string VolumeLabel { get; set; }

// Setting the drive name
private void button1_Click(object sender, EventArgs e)
{
    SetVolumeLabel("FlashDrive");
}
2 голосов
/ 14 мая 2011
...