AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten-Verzeichnisse?

Ein Thema von PeterPanino · begonnen am 25. Sep 2012 · letzter Beitrag vom 3. Okt 2012
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

Daten-Verzeichnisse?

  Alt 25. Sep 2012, 00:13
Hallo! Um eigene Dokumente, Daten und Einstellungen abzuspeichern, bieten sich in Windows (7, Vista) m.M.n. offenbar diese beiden Verzeichnisse an:

\Users\$User$\AppData\Roaming

\Users\$User$\Documents


1. Welche Verzeichnisse sollte man benutzen?

2. Welche Verzeichnisse benutzt ihr für eure Programme?

3. Weiß jemand, ob es in Windows 8 wieder neue Pfade gibt?

4. Welche Funktionen benutzt ihr in euren Programmen, um diese Pfade zu erhalten?

5. Welch Pfad-Variablen sollte man in Inno Setup verwenden, um die selben Pfade wie im eigenen Programm zu erhalten, und das verlässlich in allen Betriebssystemvarianten ab XP aufwärts?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: Daten-Verzeichnisse?

  Alt 25. Sep 2012, 06:08
Tu bitte dir selbst und anderen einen Gefallen und verwende die entsprechenden API-Funktionen statt fester Pfade: SHGetFolderPath() (ab Win2k verfügbar) oder SHGetKnownFolderPath() (ab Vista verfügbar), natürlich mit den entsprechenden CSIDL bzw. KNOWNFOLDERID als Parameter.

Und noch eine Bitte: halte deine Programmdaten aus Eigene Dateien (dein Beispiel Documents) raus! Ich hasse es, wenn Programme (vor allem Spiele) meinen, ihren Kram dort abkippen zu müssen, obwohl es passende Verzeichnisse im System dafür gibt: Anwendungsdaten/AppData (CSIDL_APPDATA bzw. FOLDERID_RoamingAppData). Warum hasse ich das? Nun, es sagt schon der Name der Verzeichnisse: AppData ist für die Daten der Applikation, Eigene Dateien (My Documents) ist für meine Daten, nicht für die Daten der Anwendungen, d.h. dort lege ich meine Dokumente, Skripte oder was auch immer ab.

Zu deinen konkreten Fragen.
Zitat:
1. Welche Verzeichnisse sollte man benutzen?
CSIDL_APPDATA/FOLDERID_RoamingAppData oder meinetwegen auch die Pendants im AllUsers-Verzeichnis CSIDL_COMMON_APPDATA/FOLDERID_ProgramData. Wobei es immer darauf ankommt, was es für Daten/Einstellungen sind, denn manchmal eignen sich die Verzeichnisse CSIDL_LOCAL_APPDATA/FOLDERID_LocalAppData eher, weil sie eben nicht "roaming" sind, also in einer Domäne nicht auf dem Server landen.

Zitat:
2. Welche Verzeichnisse benutzt ihr für eure Programme?
Bisher habe ich keine so großen Projekte geschrieben, dass es sich lohnen würde, mich an meine eigene Empfehlung zu halten . Stattdessen lege ich meine INIs neben den Executables ab, wobei meine "wichtigen" Programme immer die Möglichkeit bieten, via Parameter einen alternativen Speicherort anzugeben.

Zitat:
3. Weiß jemand, ob es in Windows 8 wieder neue Pfade gibt?
Mit Vista ist zwar die Funktion SHGetKnownFolderPath() hinzugekommen, aber die Funktion SHGetFolderPath() funktioniert auf allen Windows-Versionen seit Win2k. Neue Pfade gibt es IIRC auch nicht, aber letztlich ist das egal, denn bei Benutzung der (richtigen) API-Funktionen kommt das System immer im richtigen Pfad raus (sofern nicht irgendwas am Windows kaputt ist ).

Zitat:
4. Welche Funktionen benutzt ihr in euren Programmen, um diese Pfade zu erhalten?
Die Beantwortung dieser Frage sollte sich aus der bereits jetzt sehr langen Antwort ergeben .

Mit Inno Setup kenn ich mich (jedenfalls aus Entwicklersicht) nicht aus, daher kann ich dazu keinen Rat geben. Die Inno Setup Doku sollte aber die entsprechenden Infos bereithalten, denn die Variablen dürften von Inno Setup je nach OS-Version passend ersetzt werden (denke ich mir in meinem jugendlichen Leichtsinn ).

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: Daten-Verzeichnisse?

  Alt 25. Sep 2012, 09:11
Die Konstanten für Inno Setup stehen alle in der Hilfe unter Constants. Hier ein Auszug:

Zitat:
{localappdata}
The path to the local (nonroaming) Application Data folder.

{userappdata} & {commonappdata}
The path to the Application Data folder.

{userdocs} & {commondocs}
The path to the My Documents folder (or on NT 4.0, the Personal folder).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BasilBavaria

Registriert seit: 18. Mai 2011
Ort: Niederbayern
22 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Daten-Verzeichnisse?

  Alt 30. Sep 2012, 11:59
Hai!

Fast alle Leute die ich kenne nutzen nicht die Win-Standardvorgaben, sondern haben Datenverzeichnisse auf einer anderen Partition wie D:\Daten\Schreibkram\Datei.txt.

Ich lasse daher immer zwei Möglichkeiten:
  1. Eigener Pfad im installationsverzeichnis - \MeinProg\Daten\Datei.txt
  2. Alternativer Datenpfad auf Wunsch

Dies macht in der Regel glücklicher und insbesondere bei Variante #2 auch Datensicherungen einfacher, da der Anwender einfach komplett D: oder D:\Daten sichern kann ohne sich vorher alle möglichen Verzeichnisse von den Platten zusammensuchen zu müssen.

Der Basil
Die Zeiten ändern sich Früher traute ich keinem Computer, den ich nicht mehr tragen kann - heute keinem, den ich nicht mehr sehen kann ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: Daten-Verzeichnisse?

  Alt 30. Sep 2012, 12:40
Man kann natürlich einfach die gewünschten Verzeichnisse umleiten, welche von Windows bereitgestellt.
Daher gibt es in Windows auch die APIs, wo man das aktuelle Daten-Verzeichnis auslesen kann, da Windows und/oder der User Diese beliebig verschieben kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#6

AW: Daten-Verzeichnisse?

  Alt 30. Sep 2012, 13:14
Fast alle Leute die ich kenne nutzen nicht die Win-Standardvorgaben, sondern haben Datenverzeichnisse auf einer anderen Partition [...]
Habe ich auch, zumindest für Eigene Dateien, Eigene Bilder & Co., aber das Windows-Profil inkl. Anwendungsdaten lasse ich dort, wo Windows es hinlegt.

Eigene Dateien & Co kann man umbiegen, bis einschließlich XP ging das sogar sehr einfach, jedenfalls einfacher als unter Win7, weil es dort nicht nur ein Verzeichnis ist sondern derer gleich 4 oder so, auch auf eine andere Partition/Platte. Aber das bedeutet nicht, dass man im eigenen Programm dadurch Nachteile bekäme - höchstens dann, wenn man feste Pfade verwendet statt der API-Funktionen.

Nicht dass wir uns falsch verstehen: eine benutzerdef. Angabe, losgelöst vom System, ist sicher nicht schlecht (im Gegenteil), aber wenn ich erst bei jedem Programm anfangen müsste, den Speicherort umzubiegen, käme ich gar nicht mehr zum Arbeiten.

MfG Dalai
  Mit Zitat antworten Zitat
BasilBavaria

Registriert seit: 18. Mai 2011
Ort: Niederbayern
22 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Daten-Verzeichnisse?

  Alt 3. Okt 2012, 12:14
Zitat:
... aber wenn ich erst bei jedem Programm anfangen müsste, den Speicherort umzubiegen, käme ich gar nicht mehr zum Arbeiten.
MfG Dalai
Und wie oft macht man das? Einmal! Normalerweise direkt nach oder während der Installation bzw. dem ersten Aufruf.
Und ansonsten muss man sich halt einmal durch die wichtigen Programme robben und die Pfadangaben ändern.
Die Zeiten ändern sich Früher traute ich keinem Computer, den ich nicht mehr tragen kann - heute keinem, den ich nicht mehr sehen kann ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz