Probleme mit Zip-Archiv erstellen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    Probleme mit Zip-Archiv erstellen

    Moin!

    ich möchte ein Zip-Archiv erstellen und dann einzelne Dateien einfügen.

    Dazu habe ich mir folgendes Beispiel rausgesucht:


    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.IO.Compression
    3. ....
    4. Using zipToOpen As FileStream = New FileStream(FullZipFileName, FileMode.Open)
    5. Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
    6. Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
    7. Using writer As StreamWriter = New StreamWriter(readmeEntry.Open())
    8. writer.WriteLine("Information about this package.")
    9. writer.WriteLine("========================")
    10. End Using
    11. End Using
    12. End Using


    Das Problem ist, dass trotz Einbinden von System.IO.Compression folgende Variablen als nicht definiert markiert werden:
    • ZipArchive
    • ZipArchiveEntry

    Wie werden diese definiert?

    Gruß Jan
    Wie IntelliSense durch Anklicken auf ZipArchive vorschlägt: Du musst auch in den Projektverweisen die passende DLL einbinden (lassen):

    Auch wenn der IntelliSense-Eintrag von Imports System.IO.Compression redet, meint es damit nicht die Anweisung aus Zeile#2, sondern das hier:
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Moin!

    ich hänge meine neue Frage einmal an das Posting zum Thema zip hier an.

    War der Auffassung, dass ich mit

    VB.NET-Quellcode

    1. Using zipToOpen As FileStream = New FileStream(FullZipFileName, FileMode.CreateNew)
    2. Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
    3. Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("c:\temp\EurostileExtended.ttf")
    4. End Using
    5. End Using


    eine Datei in das Archiv einfügen kann - aber da kommt nichts an.

    Kann mir einer weiterhelfen?

    Gruß Jan
    @jan99 Was außer .CreateEntry() wird Dir denn da noch angeboten?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @jan99 Kannst Du bei Entry oder GetEntry() was machen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Moin !

    Du hast Dich vermutlich verschieben beim Entry - gemeint war Entries.

    Dazu wird


    angezeigt was wohl den Inhalt auflistet.

    Dann gab es noch CreateEntry und dass klingt im Grunde gut ...



    aber da kommt nichts - auch wenn ich das Zip lokal anlegen will und nicht im Netz.

    Gruß Jan
    @jan99 Gibt es da nicht irgendwo ne ordentliche Dokumentation zu?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    hi!

    bin auch so am verzeifeln, dass ich mir nun das DotNetZip einmal über nuget installiert habe und auch ein einläuchtendes Beispiel gefunden habe.

    VB.NET-Quellcode

    1. Try
    2. Using zip As ZipFile = New ZipFile
    3. zip.AddFile("c:\photos\personal\7440-N49th.png", "")
    4. zip.AddFile("c:\Desktop\2005_Annual_Report.pdf", "")
    5. zip.AddFile("ReadMe.txt")
    6. zip.Save("MyZipFile.zip")
    7. End Using
    8. Catch ex1 As Exception
    9. Console.Error.WriteLine("exception: {0}", ex1.ToString)
    10. End Try


    Probem hier nur, dass die Zeile

    VB.NET-Quellcode

    1. Using zip As ZipFile = New ZipFile


    das Zipfile als fehlender Typ markiert wird.

    Müssste da nicht noch oben etwas importiert werden oder ...

    Gruß Jan



    PS: Lösung gefunden über den Film in



    VB.NET-Quellcode

    1. Imports Ionic.Zip


    Jan

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „jan99“ ()

    Hi,
    da brauchst Du keine Videos für.
    VS zeigt Dir doch was falsch ist, oder was fehlt.
    Einfach auf das rot untergringelte gehen und Strg+. drücken, dann bekommst Du Lösungen von VS.
    Nicht alles davon ist sinnvoll aber in deinem Problem hätte VS Dir gesagt oder vorgeschlagen Ionic.Zip zu importieren.
    Das kannst Du direkt mit Enter bestätigen und bist fertig!
    "Hier könnte Ihre Werbung stehen..."
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Moin!

    hast ja recht - aber darüber habe ich erst herausgefunden wie mir das angezeigt wird.

    Gruß Jan

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