SetVolumeLabel (kernel32)
Last changed: -82.242.102.192

.
Summary
Sets the label of a file system volume.

C# Signature:

[DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)]
static extern bool SetVolumeLabel(string lpRootPathName, string lpVolumeName);

VB.NET Signature:

<DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function SetVolumeLabel(ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Boolean
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

C# Sample Code:

using System;
using System.Runtime.InteropServices;

namespace PInvoke.Test
{

    class NameChanger
    {
        [DllImport("kernel32.dll")]
        static extern bool SetVolumeLabel(string lpRootPathName, string lpVolumeName);

        [STAThread]
        public static void Main()
        {
            if(SetVolumeLabel("C:\\","PInvokeC Drive"))
                Console.WriteLine("Name Changed");
            else
                Console.WriteLine("Unable to change");
        }
    }
}

VB.NET Sample Code:

Imports System.Runtime.InteropServices

''' <summary>
''' Managed wrapper for changing the drive label
''' </summary>
Public Module VolumeLabel
    <DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Function SetVolumeLabel(ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Boolean
    End Function

    Public Function Change(ByVal DrivePath As String, ByVal VolumentLabel As String) As Boolean
        Return SetVolumeLabel(DrivePath, VolumentLabel)
    End Function
End Module

Alternative Managed API:

Do you know one? Please contribute it!

Documentation