Ich habe grade im Internet eine Klasse gefunden die das kann.
Imports System.IO
Imports System.IO.Compression
Imports System.Text
Public Class FileStringConversation
Private Sub New()
End Sub
Public Shared Function FileToString(Path As String) As String
Dim mInfo As New FileInfo(Path)
Dim mBinary As [Byte]()
Using stream As FileStream = mInfo.Open(FileMode.Open)
mBinary = New [Byte](mInfo.Length - 1) {}
stream.Read(mBinary, 0, CInt(mInfo.Length))
End Using
Dim buffer__1 As Byte() = mBinary
Dim memoryStream = New MemoryStream()
Using gZipStream = New GZipStream(memoryStream, CompressionMode.Compress, True)
gZipStream.Write(buffer__1, 0, buffer__1.Length)
End Using
memoryStream.Position = 0
Dim compressedData = New Byte(memoryStream.Length - 1) {}
memoryStream.Read(compressedData, 0, compressedData.Length)
Dim gZipBuffer = New Byte(compressedData.Length + 3) {}
Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length)
Buffer.BlockCopy(BitConverter.GetBytes(buffer__1.Length), 0, gZipBuffer, 0, 4)
Return Convert.ToBase64String(gZipBuffer)
End Function
Public Shared Sub String2File(compressedText As String, sFile As String)
Dim gZipBuffer As Byte() = Convert.FromBase64String(compressedText)
Using memoryStream = New MemoryStream()
Dim dataLength As Integer = BitConverter.ToInt32(gZipBuffer, 0)
memoryStream.Write(gZipBuffer, 4, gZipBuffer.Length - 4)
Dim buffer = New Byte(dataLength - 1) {}
memoryStream.Position = 0
Using gZipStream = New GZipStream(memoryStream, CompressionMode.Decompress)
gZipStream.Read(buffer, 0, buffer.Length)
End Using
Using stream As FileStream = File.Open(sFile, FileMode.OpenOrCreate, FileAccess.Write)
stream.Write(buffer, 0, buffer.Length)
End Using
End Using
End Sub
End Class