Ordner und Dateien Packen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Schamash.

    Ordner und Dateien Packen

    Hallo zusammen,

    Ich versuche nun schon seit einiger Zeit einen Ordner mit Dateien in einer (zip)Datei zu sichern.
    Leider funktionieren bei mir die Beispiele der msdn nicht.
    Also weder gzipstream noch zipFile

    MSDN-GZIPSTREAM

    im Beispiel gzipstream teilt mir mein Compiler mit dass, copyto kein member von Filestram und gzipstream ist.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.IO.Compression
    3. Module Module1
    4. Sub Main()
    5. Dim directoryPath As String = "c:\users\public\reports"
    6. Dim directorySelected As DirectoryInfo = New DirectoryInfo(directoryPath)
    7. For Each fileToCompress As FileInfo In directorySelected.GetFiles()
    8. Compress(fileToCompress)
    9. Next
    10. For Each fileToDecompress As FileInfo In directorySelected.GetFiles("*.gz")
    11. Decompress(fileToDecompress)
    12. Next
    13. End Sub
    14. Private Sub Compress(ByVal fileToCompress As FileInfo)
    15. Using originalFileStream As FileStream = fileToCompress.OpenRead()
    16. If (File.GetAttributes(fileToCompress.FullName) And FileAttributes.Hidden) <> FileAttributes.Hidden And fileToCompress.Extension <> ".gz" Then
    17. Using compressedFileStream As FileStream = File.Create(fileToCompress.FullName + ".gz")
    18. Using compressionStream As GZipStream = New GZipStream(compressedFileStream, CompressionMode.Compress)
    19. originalFileStream.CopyTo(compressionStream) ' <-------------- Hier fehler
    20. Console.WriteLine("Compressed {0} from {1} to {2} bytes.", _
    21. fileToCompress.Name, fileToCompress.Length.ToString(), compressedFileStream.Length.ToString())
    22. End Using
    23. End Using
    24. End If
    25. End Using
    26. End Sub
    27. Private Sub Decompress(ByVal fileToDecompress As FileInfo)
    28. Using originalFileStream As FileStream = fileToDecompress.OpenRead()
    29. Dim currentFileName As String = fileToDecompress.FullName
    30. Dim newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length)
    31. Using decompressedFileStream As FileStream = File.Create(newFileName)
    32. Using decompressionStream As GZipStream = New GZipStream(originalFileStream, CompressionMode.Decompress)
    33. decompressionStream.CopyTo(decompressedFileStream) '<------ Hier fehler
    34. Console.WriteLine("Decompressed: {0}", fileToDecompress.Name)
    35. End Using
    36. End Using
    37. End Using
    38. End Sub
    39. End Module



    Beim ZipFile beispiel sagt er mit das er ZipFile nicht kennt.
    Im Namespace System.IO.Compression "fehlt" die Assembly System.IO.Compression.FileSystem


    Mache ich hier was falsch? Beziehungsweise, ich denke schon das ich was falsch mache, aber was?
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Hy wenn du Net 4.5 hast importier dir doch Compression.FileSystem da gibt es eine Funktion dafür. Dies geht leider erst ab der Version 4.5 frühere Versionen können diese Funktion leider nicht benutzen.

    VB.NET-Quellcode

    1. IO.Compression.ZipFile.CreateFromDirectory("Dein Ordner", "DeineZip.zip")
    OK!

    Wer lesen kann ich klar im Vorteil.
    Ich habe nur 4.0 zur Verfügung und kann auch hier nicht updaten.

    gibt es eine ähnliche Vorgehensweise auch für FW <=4.0
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    OK. Ich denke da ich es nur der übersichtshalber als "zip" speichern wollte werde ich nun einfach immer einen neuen Ordner anlegen.
    Und wenn wir hier dann irgendwann auf 4.5 updaten baue ich die compression ein.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    @ThuCommix

    Stimmt. Ich hatte das FW noch von den Tests auf 3.5 stehen. Jetzt auf 4.0 geht's mit gzip.

    Heute ist echt nicht mein Tag :)

    edit:

    @ThuCommix
    Ich hätte da noch eine Frage.
    Ich schaffe es alle Dateien des Ordners zu komprimieren. Ist es auch möglich direkt den Ordner zu komprimieren
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Schamash“ ()