To get free disk 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)] public static extern bool GetDiskFreeSpaceEx(string lpDirectoryName, out ulong lpFreeBytesAvailable, out ulong lpTotalNumberOfBytes,out ulong lpTotalNumberOfFreeBytes); public static bool GetFreeBytes(string folderName, out ulong freeBytes) { freeBytes = 0; if (!folderName.EndsWith("\\")) { folderName += '\\'; } ulong freeSpaceInBytes = 0; ulong notUsed = 0; ulong notUsed2 = 0; if (GetDiskFreeSpaceEx(folderName, out freeSpaceInBytes, out notUsed, out notUsed2)) { freeBytes = freeSpaceInBytes; return true; } else { return false; } }
Sample VB.NET
<DllImport("kernel32.dll", SetLastError := True, CharSet := CharSet.Auto)> _ Public 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 GetFreeBytes(folderName As String, ByRef freeBytes As ULong) As Boolean freeBytes = 0 If Not folderName.EndsWith("\") Then folderName += "\" End If Dim freeSpaceInBytes As ULong = 0 Dim notUsed As ULong = 0 Dim notUsed2 As ULong = 0 If GetDiskFreeSpaceEx(folderName, freeSpaceInBytes, notUsed, notUsed2) Then freeBytes = freeSpaceInBytes Return True Else Return False End If End Function
RT @CodeSnippetsNET: How to get free disk space in .NET http://t.co/0uT435hdVP #csharp #vb #dotnet #programming #coding #code