Comprimir y Descomprimir archivos

Problema: Necesito, por medio de código de programación, comprimir y descomprimir un archivo.
Solución: Encontré estas opciones buscando por allí, en la web. Para comprimir.

Public Sub ComprimirArchivo(ByVal archivoEntrada As String, ByVal archivoSalida As String)
        Using sourceFile As FileStream = File.OpenRead(archivoEntrada)
                Using destFile As FileStream = File.Create(archivoSalida)
                        Using compStream As GZipStream = New GZipStream(destFile, CompressionMode.Compress)
                                Dim data(sourceFile.Length) As Byte
                                sourceFile.Read(data, 0, data.Length)
                                compStream.Write(data, 0, data.Length)
                        End Using
                End Using
        End Using
End Sub

Para descomprimir.

Public Sub DescomprimirArchivo(ByVal archivoEntrada As String, ByVal archivoSalida As String)
        Using sourceFile As FileStream = File.OpenRead(archivoEntrada)
                Using destFile As FileStream = File.Create(archivoSalida)
                        Using compStream As GZipStream = New GZipStream(sourceFile, CompressionMode.Decompress)
                                Dim data As Integer
                                data = compStream.ReadByte()
                                While (data <> -1)
                                        destFile.WriteByte(CByte(data))
                                        data = compStream.ReadByte()
                                End While
                        End Using
                End Using
        End Using
End Sub
Se usa así:
Dim path As String = "C:\Carpeta\ejemplo.txt"
Dim path2 As String = "C:\Respaldo\ejemplo_comprimido.zip"

ComprimirArchivo(path, path2)

Me indicaron que se podía usar con diferentes tipos de archivos comprimidos, como son los Zip y los Rar, pero no estoy muy segura de otros formatos, así que toca probar.