Unzip soll ohne zu fragen überschreiben.

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von eminem.

    Unzip soll ohne zu fragen überschreiben.

    Hallo,

    Ich versuche seit längerem eine lösung zu finden und hoffe ihr könnt mir weiter helfen,
    ich möchte eine ganz normale zip datei entpacken und wenn die datei schon vorhanden ist, soll er Sie entpacken und Überschreiben,
    aber leider erscheint immer ein Windows Fenster und fragt ob die Datei Überschrieben werden soll.

    Wie kann ich das so umsetzen das diese Frage nicht mehr kommt und Automatisch überschrieben wird?

    Ich benutze den Unzip vom mikeb69:
    [VB.NET] Zip-Datei ohne externe Tools entpacken.

    Ich habe schon über Google und die Sufu von hier benutzt nur leider nichts passendes gefunden.
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.
    Danke für deine Antwort,

    mir wäre es lieber wenn ohne zu Löschen einfach Überschrieben wird, es muss nicht unbedingt dieses unzip Verfahren sein,
    es kann auch ein anderes sein, hauptsache er Entpackt diese und fragt nicht mehr nach das er Überschreiben soll.
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.

    eminem schrieb:

    Ich habe schon über Google und die Sufu von hier benutzt nur leider nichts passendes gefunden.

    Hast Du Dir mal die Meldung und den Ordner angesehen, in dem das Zip-File liegt?
    Mike erstellt einen test_unzip_folder, den Inhalt musst Du vorher einfach löschen, z.B. so:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Using ofd As New OpenFileDialog
    3. ofd.Filter = "ZipFile|*.zip"
    4. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. Dim file As String = ofd.FileName
    6. Dim MyPath As String = Path.Combine(Path.GetDirectoryName(file), "test_unzip_folder")
    7. For Each fi As FileInfo In New DirectoryInfo(MyPath).GetFiles("*.*")
    8. fi.Delete()
    9. Next
    10. Dim cu As New ClassUnzip(file, MyPath)
    11. AddHandler cu.UnzipFinishd, AddressOf Unziped
    12. cu.UnzipNow()
    13. End If
    14. End Using
    15. End Sub
    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!
    Ich Schreibe an einem Updater,
    bei mir wird eine ZIP File runtergeladen und im Hauptordner des Programms entpackt, deshalb wollte ich ja das Löschen vermeiden.
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.
    Dann solltest Du Deine 2 Probleme Download und Unzip sauber trennen. Dann sollte es keine Probleme geben.
    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!
    Also ich denke mal dass das Problem nicht beim Download oder beim Unzip hängt.
    Ich denke das es ihm darum geht dass die Datein in das Hauptprogram Verzeichnis unzipt werden sollen.

    Beispiel

    Verzeichnis A
    Inhalt A.exe

    nun UNZIP in Verzeichnis A
    Unzip neue A.exe

    Da alte A.exe überschrieben wird kommt die Windooffrage

    Datei Existiert schon soll diese Überschrieben werden? (oder so Ähnlich)

    und genau diese Frage will er Umgehen!
    Aber wie? da habe ich leider auch kein Problem. << Meinte Plan!! ( :huh:
    ?( ?(

    MFG Wej

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

    wejherowo112 schrieb:

    Also ich denke mal dass das Problem nicht beim Download oder beim Unzip hängt.

    Das Problem ist, dass der TE Teilaufgaben vermatscht und somit keine ordentliche Programmstruktur hat.
    Ein Problem ist das Runterladen einer Datei. Wenn die Datei da ist, wird sie überschrieben.
    Wenn das nicht geht, muss sie vorher gelöscht werden.
    Ds andere Problem ist das Unzippen.
    Wenn ich dem Programm sagen kann, wohin es unzippen soll, mach ich halt vorher Ordnung.
    Kein Problem, keine Nachfrage vom System, alles zur besten Zufriedenheit gelöst.
    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!
    Die Lösung für die Überschreibabfrage ist CopyHere vOptions=16

    Wenn es denn funktioniert.
    Ich erinnere mich zumindest an einige XP-Installationen, bei denen dieses Flag einfach ignoriert wurde.

    Aber einen Versuch ist es dennoch wert, den Sourcecode von mikeb69 entsprechend zu erweitern.

    Ich hab's damals so gelöst, dass ich in einen neuen Temp-Folder extrahierte und die Daten anschliessend mit MoveFile ins Zielverzeichnis verschob.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

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

    Danke dir für die Hilfe,

    Auf die Idee hätte ich auch mal kommen können, danke petaod

    ich habe mit dem Befehl: My.Computer.FileSystem.CopyDirectory(C:\Updateordner", "C:\Programme\Mein Programm", True)
    So kopiert er die Files ohne Prob rein und überschreibt diese sogar ohne nach zu fragen :)
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.

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