Datei aus Resourcen extrahieren und auf Festplatte speichern

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Datei aus Resourcen extrahieren und auf Festplatte speichern

    Hallo,
    ich will aus den Resourcen eine Datei auf die Festplatte kopieren. Das sollte eigentlich
    mit folgendem Code möglich sein, aber es kommt immer die Fehlermeldung, dass der
    Zugriff auf den Pfad verweigert wurde.

    Quellcode

    1. IO.Directory.CreateDirectory("C:\Program Files (x86)\Irgendwas\Programm")
    2. Dim Res() As Byte = My.Resources.button_dark
    3. IO.File.WriteAllBytes("C:\Program Files (x86)\Irgendwas\Programm", Res)

    Mansuro schrieb:

    aber es kommt immer die Fehlermeldung, dass der Zugriff auf den Pfad verweigert wurde.
    Dann probiere das ganze mal mit dem Pfad "c:\Temp", da geht es nämlich.
    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!
    Und wenn du es nicht irgendwo in irgendeinem Temp-Ordner, der womöglich nicht mal existiert, speichern willst, bedienst du dich der seit XP gebräuchlichen Spezial-Ordner, z.B. Applikationsweit Application.CommonAppDataPath oder auf den angemeldeten User bezogen Application.UserAppDataPath.

    Ergänzung:
    Und wenn es dich stört, dass bei diesen Pfaden automatisch Informationen über "Company" oder die Versionsnummer Bestandteil des Pfadnamens sind, baust du dir deine Pfade mit Hilfe der Environment-Klasse selbst zusammen:

    VB.NET-Quellcode

    1. Dim Pfad = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Application.CompanyName, Application.ProductName, Application.ProductVersion)
    2. Pfad = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Application.CompanyName, Application.ProductName, Application.ProductVersion)

    ...wobei du jeweils die letzten drei Parameter beliebig kombinieren oder weglassen kannst.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    Arby schrieb:

    Und wenn du es nicht irgendwo in irgendeinem Temp-Ordner, der womöglich nicht mal existiert, speichern willst, bedienst du dich der seit XP gebräuchlichen Spezial-Ordner, z.B. Applikationsweit Application.CommonAppDataPath oder auf den angemeldeten User bezogen Application.UserAppDataPath.


    Ich habe gerade beide probiert und es kommt immernoch der selbe Fehler.

    PS: Ich starte die Anwendung als Administrator

    Mansuro schrieb:

    Ja, aber ich will
    Soviel zur Trennung von Problemen. :D
    Offensichtlich hast Du nicht das Recht, diesen Pfad zu beschreiben.
    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!