@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The FindFirstVolume API !!!!C# Signature: [DllImport("kernel32.dll", SetLastError = true)] static extern IntPtr FindFirstVolume([Out] StringBuilder lpszVolumeName, uint cchBufferLength); !!!!User-Defined Types: None. !!!!VB.NET Signature: Declare Function FindFirstVolumeW Lib "kernel32.dll" (ByVal lpszVolumeName As System.Text.StringBuilder, ByVal cchBufferLength As UInteger) As IntPtr !!!!Notes: None. !!!!Tips & Tricks: Please add some! !!!!Sample Code: [DllImport("kernel32.dll", SetLastError = true)] static extern FindVolumeSafeHandle FindFirstVolume([Out] StringBuilder lpszVolumeName, uint cchBufferLength); [DllImport("kernel32.dll", SetLastError = true)] static extern bool FindNextVolume(FindVolumeSafeHandle hFindVolume, [Out] StringBuilder lpszVolumeName, uint cchBufferLength); [DllImport("kernel32.dll", SetLastError = true)] static extern bool FindVolumeClose(IntPtr hFindVolume); public class FindVolumeSafeHandle : SafeHandleZeroOrMinusOneIsInvalid { private FindVolumeSafeHandle() : base(true) { } public FindVolumeSafeHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle) { SetHandle(preexistingHandle); } protected override bool ReleaseHandle() { return FindVolumeClose(handle); } } public static StringCollection GetVolumes() { const uint bufferLength = 1024; StringBuilder volume = new StringBuilder((int)bufferLength, (int)bufferLength); StringCollection ret = new StringCollection(); using (FindVolumeSafeHandle volumeHandle = FindFirstVolume(volume, bufferLength)) { if (volumeHandle.IsInvalid) { throw new System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error()); } do { ret.Add(volume.ToString()); } while (FindNextVolume(volumeHandle, volume, bufferLength)); return ret; } } !!!!Alternative Managed API: Do you know one? Please contribute it! Documentation: FindFirstVolume@msdn on MSDN !!See also: [FindNextVolume] [FindVolumeClose]
Edit kernel32.FindFirs...
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.