如何设置卷标
本文关键字:设置 何设置 | 更新日期: 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
向您显示标签。这不会更改驱动器标签,它只允许您在资源管理器中为虚拟驱动器提供一种显示名称。但对于某些人来说,这可能是他们所需要的。