none
Ordnerstruktur in Windows 7 RRS feed

  • Frage

  • Hallo,

    wenn ich ein fertiges VB Projekt auf meinem Rechner installieren möchte, habe ich bisher immer folgende Ordnerstruktur verwendet:

    C:\Programme\<Programmname>
    C:\Programme\<Programmname>\daten (für Datenbanken etc.)

    Nun habe ich gelesen, daß man unter Windows 7 diese Ordnerstruktur nicht mehr verwenden soll.

    Welche Ordner muß ich unter Windows 7 denn nun anlegen, wenn ich zum Einen eine exe-Datei als Hauptprogramm habe und auf der anderen Seite mehrere Unterverzeichnisse mit Datenbanken, Hilfedateien, Sounds etc.

    Es gibt da in Windows 7 ja jede Menge Ordner (Programmdata, C:\Users..., Roaming etc), dass man leider nicht mehr durchblickt.

    Kann mir jemand sagen, wie es richtig laufen soll ?

     

    Danke !

    Jörg.

     

    Donnerstag, 24. März 2011 15:17

Antworten

  • Hallo Jörg,

    wirklich helfen werde ich Dir nicht können, aber Dir vielleicht ein paar Hinweise geben, in welche Richtung Du weiter recherchieren kannst.

    Im Prinzip kannst Du schon eine solche Struktur anlegen, aber ...
    In den Ordnern unter %ProgramFiles% hat normalerweise ein User keine Schreibrechte und wenn Du dann dort (in einem Unterordner) eine Datenbank ablegen willst, dann ist die Schreibgeschützt; nicht so ganz im Sinne einer DB. Siehe z.B. TechNet Understanding and Configuring User Account Control in Windows Vista, wobei das Ändern der Berechtigungen eigentlich nicht so ganz im Sinne des Erfinders ist.

    Du könntest also nun die Datenbank im Profil des Users ablegen, dort hat er auch Schreibrecht. Das wäre dann als Beispiel C:\Users\<UserName>\AppData\Local\<CompanyName>\<AppName>

    VB.NET bietet da einiges an Unterstützung, nur mit VB6 wirst Du da einiges selbst erledigen müssen, also Registry auslesen, um den Pfad zu ermmitteln, für jeden User die Template-DB umkopieren usw.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Donnerstag, 24. März 2011 19:10
  • Registry auslesen, um den Pfad zu ermmitteln

    Ergänzend:

    Wie ermittel ich den Pfad eines besonderen Ordners (z.B. "Eigene Dateien")?
    http://vb-faq.de/article.php?id=85

    Pfade zu vordefinierten Systemordnern auflösen
    http://www.vb-hellfire.de/knowlib/specialfolder.php

    Wenn alle Benutzer auf die gleiche Datenbank zugreifen sollen, kann man auch das Verzeichnis für gemeinsame Anwendungsdateien verwenden. Hier hat der Ersteller einer Datei/ eines Ordners Schreib- und Leserechte. Für andere Benutzer müssten diese Rechte nach dem Erstellen der Datei/ des Ordners explizit gesetzt werden. Dies könnte auch ein Setup bei der Installation übernehmen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Freitag, 25. März 2011 06:03
    Moderator

Alle Antworten

  • Hallo Jörg,

    wirklich helfen werde ich Dir nicht können, aber Dir vielleicht ein paar Hinweise geben, in welche Richtung Du weiter recherchieren kannst.

    Im Prinzip kannst Du schon eine solche Struktur anlegen, aber ...
    In den Ordnern unter %ProgramFiles% hat normalerweise ein User keine Schreibrechte und wenn Du dann dort (in einem Unterordner) eine Datenbank ablegen willst, dann ist die Schreibgeschützt; nicht so ganz im Sinne einer DB. Siehe z.B. TechNet Understanding and Configuring User Account Control in Windows Vista, wobei das Ändern der Berechtigungen eigentlich nicht so ganz im Sinne des Erfinders ist.

    Du könntest also nun die Datenbank im Profil des Users ablegen, dort hat er auch Schreibrecht. Das wäre dann als Beispiel C:\Users\<UserName>\AppData\Local\<CompanyName>\<AppName>

    VB.NET bietet da einiges an Unterstützung, nur mit VB6 wirst Du da einiges selbst erledigen müssen, also Registry auslesen, um den Pfad zu ermmitteln, für jeden User die Template-DB umkopieren usw.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Donnerstag, 24. März 2011 19:10
  • Registry auslesen, um den Pfad zu ermmitteln

    Ergänzend:

    Wie ermittel ich den Pfad eines besonderen Ordners (z.B. "Eigene Dateien")?
    http://vb-faq.de/article.php?id=85

    Pfade zu vordefinierten Systemordnern auflösen
    http://www.vb-hellfire.de/knowlib/specialfolder.php

    Wenn alle Benutzer auf die gleiche Datenbank zugreifen sollen, kann man auch das Verzeichnis für gemeinsame Anwendungsdateien verwenden. Hier hat der Ersteller einer Datei/ eines Ordners Schreib- und Leserechte. Für andere Benutzer müssten diese Rechte nach dem Erstellen der Datei/ des Ordners explizit gesetzt werden. Dies könnte auch ein Setup bei der Installation übernehmen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Freitag, 25. März 2011 06:03
    Moderator
  • Hallo Jörg122,

    Schau Dir mal die folgenden Links an. Vielleicht können sie Dir mit Info weiter helfen.

    User Account Control

    An welchen Ort sollte ich die Benutzerdaten meiner Anwendung schreiben, wenn diese keine Administratorenrechte hat?

    Grüße,

    Robert

    Freitag, 25. März 2011 11:12
    Moderator