To get free Drive Space in C# and VB.NET you can use the following snippet.
Sample C#
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,out ulong lpFreeBytesAvailable,out ulong lpTotalNumberOfBytes,out ulong lpTotalNumberOfFreeBytes); public static bool GetFreeDriveSpace(string path, out ulong freebytes) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException("path"); } if (!path.EndsWith("\\")) { path = String.Concat(path, "\\"); } ulong lpFreeBytesAvailable; ulong lpTotalNumberOfBytes; ulong lpTotalNumberOfFreeBytes; if (GetDiskFreeSpaceEx(path, out lpFreeBytesAvailable, out lpTotalNumberOfBytes, out lpTotalNumberOfFreeBytes)) { freebytes = lpFreeBytesAvailable; return true; } freebytes = 0; return false; }
Sample VB.NET
<DllImport("kernel32.dll", SetLastError := True, CharSet := CharSet.Auto)> _ Private Shared Function GetDiskFreeSpaceEx(lpDirectoryName As String, ByRef lpFreeBytesAvailable As ULong, ByRef lpTotalNumberOfBytes As ULong, ByRef lpTotalNumberOfFreeBytes As ULong) As <MarshalAs(UnmanagedType.Bool)> Boolean End Function Public Shared Function GetFreeDriveSpace(path As String, ByRef freebytes As ULong) As Boolean If String.IsNullOrEmpty(path) Then Throw New ArgumentNullException("path") End If If Not path.EndsWith("\") Then path = [String].Concat(path, "\") End If Dim lpFreeBytesAvailable As ULong Dim lpTotalNumberOfBytes As ULong Dim lpTotalNumberOfFreeBytes As ULong If GetDiskFreeSpaceEx(path, lpFreeBytesAvailable, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes) Then freebytes = lpFreeBytesAvailable Return True End If freebytes = 0 Return False End Function
RT @CodeSnippetsNET: How to get free Drive Space in C# and http://t.co/8NYPvKyVOV http://t.co/aEq7CykOGA #vb #csharp #dotnet #coding #code …