@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm 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: This API is unnecessary. Class System.IO.DriveInfo can both get and set the given drive label. See http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx for more info. ^^^^^^^^^^^^^^^^ Unfortunately the DriveInfo Class does NOT support Network drives. ^^^^^^^^^^^^^^^^ Unfortunately the DriveInfo Class only handles volume with drive letter. !!!!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.ComponentModel 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 Property DriveLabel(ByVal DrivePath As String) As String Get Return Dir(DrivePath, FileAttribute.Volume) End Get Set(ByVal value As String) If Not SetVolumeLabel(DrivePath, value) Then Throw New Win32Exception(Marshal.GetLastWin32Error()) End Set End Property End Module !!!!Alternative Managed API: Dim Drive As New System.IO.DriveInfo("C:\") MessageBox.Show(Drive.VolumeLabel & " [" & Drive.Name & "]") Drive.VolumeLabel = "Test volume label" See http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx for more info. Documentation: SetVolumeLabel@msdn on MSDN
Edit kernel32.SetVolum...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.