VB.Net/C# - How to add a single file to a ZIP with SharpZipLib

Here is a shared/static function (provided in Visual Basic and C#) that will add a single file into a ZIP file using SharpZipLib. Portions of this code originated from StackExchange, I melded what I saw into a single function.

VB.Net

    ''' <summary>
    ''' Adds a single file to a ZIP library using SharpZipLib
    ''' </summary>
    ''' <param name="zipFile">The path to the zip file you want to add a file to.</param>
    ''' <param name="fileToAdd">The path to the file you want to add to the zip.</param>
    ''' <param name="compressionLevel">The compression level to use from 0 to 10</param>
    ''' <remarks></remarks>
    Public Shared Sub AddFileToZip(zipFile As String, fileToAdd As String, compressionLevel As Integer)
        Using zipStream As New ICSharpCode.SharpZipLib.Zip.ZipOutputStream(File.Create(zipFile))
            zipStream.SetLevel(compressionLevel)

            Dim buffer As Byte() = New Byte(4095) {}
            Dim entry As New ICSharpCode.SharpZipLib.Zip.ZipEntry(System.IO.Path.GetFileName(fileToAdd))

            entry.DateTime = DateTime.Now
            zipStream.PutNextEntry(entry)

            Using fs As FileStream = File.OpenRead(fileToAdd)
                Dim sourceBytes As Integer
                Do
                    sourceBytes = fs.Read(buffer, 0, buffer.Length)
                    zipStream.Write(buffer, 0, sourceBytes)
                Loop While sourceBytes > 0
            End Using

            zipStream.Finish() : zipStream.Close() : zipStream.Dispose()
        End Using

    End Sub

C#


/// <summary>
/// Adds a single file to a ZIP library using SharpZipLib
/// </summary>
/// <param name="zipFile">The path to the zip file you want to add a file to.</param>
/// <param name="fileToAdd">The path to the file you want to add to the zip.</param>
/// <param name="compressionLevel">The compression level to use from 0 to 10</param>
/// <remarks></remarks>
public static void AddFileToZip(string zipFile, string fileToAdd, int compressionLevel)
{
	using (ICSharpCode.SharpZipLib.Zip.ZipOutputStream zipStream = new ICSharpCode.SharpZipLib.Zip.ZipOutputStream(File.Create(zipFile))) {
		zipStream.SetLevel(compressionLevel);

		byte[] buffer = new byte[4096];
		ICSharpCode.SharpZipLib.Zip.ZipEntry entry = new ICSharpCode.SharpZipLib.Zip.ZipEntry(System.IO.Path.GetFileName(fileToAdd));

		entry.DateTime = DateTime.Now;
		zipStream.PutNextEntry(entry);

		using (FileStream fs = File.OpenRead(fileToAdd)) {
			int sourceBytes = 0;
			do {
				sourceBytes = fs.Read(buffer, 0, buffer.Length);
				zipStream.Write(buffer, 0, sourceBytes);
			} while (sourceBytes > 0);
		}

		zipStream.Finish();
		zipStream.Close();
		zipStream.Dispose();
	}

}