.zip-Datei in Ressourcen?

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von YaPh1l.

    .zip-Datei in Ressourcen?

    Guten Abend alle miteinander!

    Ich beschäftige mich nun schon seit nem Jahr mit VisualBasic/html/php usw... Naja und wollte nun in Visual Basic auf Ressourcen eingehen... Allerdings wird mir eines nicht klar: Ich kann Ressourcen auf die Festplatte über "Byte" also "Dim Namedervariable(My.Resources.Datei) As Byte" und WriteAllBytes auf der Festplatte speichern, allerdings funktioniert das nicht, wenn man eine .zip-Datei als Ressource hat :S
    Wie kann ich auf diese .zip Datei zugreifen? Visual basic scheint Probleme beim Lesen der Datei zu haben. Ist es überhaupt möglich eine .ZIP-Datei von der Application auf den Rechner zu packen?
    Und noch eine Frage ist, ob ich durch einen Pfad die Ressource öffnen kann, also dass z. B. eine .exe in der Application läuft (wär allerdings sehr seltsam :D)

    Liebe Grüße
    Alpha11833
    Grundsätzlich kann man jede Datei als Ressource speichern und die Bytes auf die Festplatte speichern. Das sollte auch für ZIP kein Problem sein, allerdings hat man dann immernoch nur eine ZIP auf der Festplatte, zum Entpacken/Auslesen einer ZIP-Datei benötigt man weitere Libs (z. B. #ziplib ).
    Zum Zweiten: Nein, es gibt keinen Pfad, der eine Ressource innerhalb des Programms beschreibt. Deshalb muss man sie erst auf die Festplatte speichern, sofern man sie starten / anderweitig extern öffnen will.
    EDIT: Wenn man eine ZIP als Container für Programmdateien nutzt, dann ist es aber sowieso Platzverschwendung, sie noch in die Ressourcen zu packen. Da kann man sie imho besser direkt mitliefern.

    Viele Grüße, Phil.

    YaPh1l schrieb:

    Grundsätzlich kann man jede Datei als Ressource speichern und die Bytes auf die Festplatte speichern. Das sollte auch für ZIP kein Problem sein, allerdings hat man dann immernoch nur eine ZIP auf der Festplatte, zum Entpacken/Auslesen einer ZIP-Datei benötigt man weitere Libs (z. B. #ziplib ).
    Zum Zweiten: Nein, es gibt keinen Pfad, der eine Ressource innerhalb des Programms beschreibt. Deshalb muss man sie erst auf die Festplatte speichern, sofern man sie starten / anderweitig extern öffnen will.
    EDIT: Wenn man eine ZIP als Container für Programmdateien nutzt, dann ist es aber sowieso Platzverschwendung, sie noch in die Ressourcen zu packen. Da kann man sie imho besser direkt mitliefern.

    Viele Grüße, Phil.

    Vielen Dank für diese Information :)
    Ich habs jetzt geschafft:

    VB.NET-Quellcode

    1. My.Computer.FileSystem.WriteAllBytes("D:\Users\Julian\Desktop\abc1.zip", My.Resources.abc, False)

    Was ich nicht verstehe ist, warum ich die Variable "Byte" erst benutzen muss, wenn es sich um z. B. eine .js-Datei handelt und dann wieder keine benutzen muss, wenn es sich um eine .zip-Datei handelt -.-

    VB.NET-Quellcode

    1. Dim Datei(My.Resources.hallo) As Byte '<--Muss ich schreiben sonst kommt ein Fehler
    2. My.Computer.FileSystem.WriteAllBytes("Pfad", Datei, False)


    Wenn mir jemand das erklären könnte wär das super!

    Liebe Grüße
    Alpha11833

    *Edit: Gibt es eine Funktion um alle Resource unter dem selben names (die sie mal hatten) zu speichern? Also auch wenn es mp3 und avi files sind?*

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

    1. Bitte keine Full Quotes des direkt obendrüber liegenden Beitrags.
    2. Die Byte-Array-Variable wird nicht zwingend benötigt und ist auch unabhängig vom Format der Ressource (solange es eine Binär-Ressource ist).
    3. Afaik gibt es keine vorgefertigte Methode, die Ressourcen direkt mit passendem Namen entpackt.

    Viele Grüße, Phil.