如何设置卷标

本文关键字:设置 何设置 | 更新日期: 2023-09-27 18:24:29

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");
}

但是,它不适用于虚拟驱动器。 如何更改由SUBST命令创建的虚拟驱动器的卷标?

如何设置卷标

你不能这样做。

来自 SUBST 的Microsoft文档:

The following commands do not work, or should not be used,
on drives used in the subst command:
chkdsk 
diskcomp 
diskcopy 
format 
label <------- NOTE
recover 

尝试以下代码

    [DllImport("kernel32.dll", SetLastError = true)]
    static extern bool SetVolumeLabel(string lpRootPathName, string lpVolumeName);
    public static void Main()
    {
        string name = "E:''";
        var status = SetVolumeLabel(name, "Test");
        var error = Marshal.GetLastWin32Error();
        Console.WriteLine(status + " " + error);
    }

有关更多帮助,请参阅 http://www.pinvoke.net/。如果状态为 false,请参阅此链接以了解错误

在我的系统上,即使创建虚拟驱动器的驱动器没有驱动器标签,我也无法更改卷标,但是有一个"仅用于显示"的解决方法适用于我的 Windows 7 计算机: 打开我的电脑,单击虚拟驱动器以突出显示它,然后等待一秒钟, 然后在驱动器号上单击一次。这将为您提供通过键入内容并按回车键来重命名驱动器的选项。这通常会更改驱动器标签,但由于您无法更改虚拟驱动器的驱动器标签,Windows 会改为创建以下注册表项: HKEY_USERS'{your SID}'Software'Microsoft'Windows'CurrentVersion'Explorer'DriveIcons'{drive letter}'DefaultLabel向您显示标签。这不会更改驱动器标签,它只允许您在资源管理器中为虚拟驱动器提供一种显示名称。但对于某些人来说,这可能是他们所需要的。