Falscher Pfad nach Installation

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von BjöNi.

    Falscher Pfad nach Installation

    Abend

    Folgendes Problem:
    Nachdem ich das Setup erstellt habe mit Innosetup, kann man das Programm problemlos überall Installieren. Das Verzeichnis kann man selber auswählen.
    Mein Programm speichert immer wieder .txt Dateien in den Debug Ordner. (Während des Entwickeln des Programmes). Welchen Pfad aber muss ich der .txt Datei angeben, wenn der Benuter der das Programm z.B unter C:\Program Files\Projekt... speichert? Ich kann ja nicht voraussehen wo der Benutzer das Programm installiert? Das Programm findet nach dem Installieren die Datei nicht mehr, weill es vorher einfach im Debug Ordner erstellt wurden.

    Welchen Pfad muss ich also dem StreamReader und Streamwriter angeben, wenn er die .txt Datei bearbeiten will? Die .txt Dateien sollen dem User ja nicht den Desktop zumüllen...

    Danke!!!!
    Schau dir Application.StartupPath() an. Gibt den Ausfuehrungspfad des Programmes als String aus. Aber pass auf: Wenn du Text-Dateien im Ordner der Programme erstellst, benoetigst du administrative Rechte. Erstell die Dateien lieber im AppData Ordner (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))
    Zusätzliche zu der erwähnten Methode (Environment.GetFolderPath) stellt die Application-Klasse weitere nützliche Pfade bereit. Interessant sind folgende
    - Application.UserAppDataPath
    - Application.LocalUserAppDataPath
    - Application.CommonAppDataPath
    Die Pfade setzen sich jeweils aus RoamingAppData, LocalUserAppData und CommonAppData und den Unterverzeichnissen <Firmenname>\<Anwendungsname>\<Version> zusammen.
    Diese sind insofernt nützlich, wenn die zu speichernden Daten version-spezifisch sind.
    Könnte ich auch den Pfad angeben, das er die Dateien in einem Ordner in Dokumente speichert? Das wäre auch noch gut. Also z.B C:\Users\********\Documents\Projekt
    Aber durch was muss ich die Sterne ersetzten, da der Name immer anders ist?
    Gib niemals absolute Pfade an! Unter XP z.B. hieß es Dokumente und Einstellungen, erst ab Vista Users -> könnte zu Fehlern führen.
    Schau dir mal die schon mehrfach erwähnte Funktion Environment.GetFolderPath auf MSDN an und suche dir raus, was du brauchen könntest: msdn.microsoft.com/de-de/library/14tx8hby.aspx

    //EDIT: Hast ja schon fertigen Code bekommen...