APPDATA / eigenes Verzeichnis je User [ERLEDIGT]
Moderator: Moderatoren
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
APPDATA / eigenes Verzeichnis je User [ERLEDIGT]
Wo ist die beste Möglichkeit Dateien je User abzulegen ?
Hintergrund:
Immer mehr Kunden nutzen eine Cloud (beim TS ist es glaube ich ähnlich) und das Laufwerk C ist für alle gleich.
Bisher habe ich es so, dass der Nutzer seine Datei mit den eigenen Formulareinstellungen / Drucker in "seinem" Ordner auf Laufwerk C hat.
Die funktioniert hier nicht mehr und ich muss einen Windows konformen Weg gehen.
Was würdet Ihr empfehlen ?
Hintergrund:
Immer mehr Kunden nutzen eine Cloud (beim TS ist es glaube ich ähnlich) und das Laufwerk C ist für alle gleich.
Bisher habe ich es so, dass der Nutzer seine Datei mit den eigenen Formulareinstellungen / Drucker in "seinem" Ordner auf Laufwerk C hat.
Die funktioniert hier nicht mehr und ich muss einen Windows konformen Weg gehen.
Was würdet Ihr empfehlen ?
Zuletzt geändert von Koverhage am Di, 19. Jan 2021 9:44, insgesamt 2-mal geändert.
Gruß
Klaus
Klaus
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verezcihnis je User
Hallo, Klaus.
Das, was Du beschreibst, trifft nur zu, wenn alle mit derselben Benutzeranmeldung arbeiten, was aus vielen Gründen eher nicht zu empfehlen ist. AppData ist ein Unterverzeichnis des Benutzerverzeichnisses. Wenn es unumgänglich ist, dass alle mit denselben Windows-Benutzerdaten auf derselben Maschine arbeiten, gibt es wahrscheinlich trotzdem innerhalb der Anwendung unterschiedliche Anmeldungen, die dann genutzt werden könnten, um z.B. im AppData\Roaming/Local\MeineApp-Verzeichnis zusätzlich nach Initialen zu verzweigen. Das machen wir in solchen Situationen, die es vor allem im Terminal Server-Kontext geben kann (vor allem bei Gast-Zugängen), dann auch in der Registry - die Gruppen haben in diesem Fall Untergruppen. Das ist zwar etwas schwierig im Blick zu behalten, vor allem, wenn es um ggf. verwaiste Daten geht, aber handlicher als die Alternativen.
Das, was Du beschreibst, trifft nur zu, wenn alle mit derselben Benutzeranmeldung arbeiten, was aus vielen Gründen eher nicht zu empfehlen ist. AppData ist ein Unterverzeichnis des Benutzerverzeichnisses. Wenn es unumgänglich ist, dass alle mit denselben Windows-Benutzerdaten auf derselben Maschine arbeiten, gibt es wahrscheinlich trotzdem innerhalb der Anwendung unterschiedliche Anmeldungen, die dann genutzt werden könnten, um z.B. im AppData\Roaming/Local\MeineApp-Verzeichnis zusätzlich nach Initialen zu verzweigen. Das machen wir in solchen Situationen, die es vor allem im Terminal Server-Kontext geben kann (vor allem bei Gast-Zugängen), dann auch in der Registry - die Gruppen haben in diesem Fall Untergruppen. Das ist zwar etwas schwierig im Blick zu behalten, vor allem, wenn es um ggf. verwaiste Daten geht, aber handlicher als die Alternativen.
Herzlich,
Tom
Tom
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verzeichnis je User
Vielleicht habe ich mich falsch ausgedrückt.
War jetzt gerade nochmals auf einigen Rechner
User 1
Eingabeaufforderung
Users\user.1
APPDATA
c:\Users\user.1\AppData\Roaming/
User 2
Eingabeaufforderung
Users\user.2
APPDATA
c:\Users\user.2\AppData\Roaming/
War jetzt gerade nochmals auf einigen Rechner
User 1
Eingabeaufforderung
Users\user.1
APPDATA
c:\Users\user.1\AppData\Roaming/
User 2
Eingabeaufforderung
Users\user.2
APPDATA
c:\Users\user.2\AppData\Roaming/
Gruß
Klaus
Klaus
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verzeichnis je User
Und was möchtest Du erreichen?
Windows hat diverse API-Funktionen, um Ordnereinstellungen abzurufen, etwa "GetTempPath(A)", um den benutzerbezogenen Temp-Pfad abzurufen (in aller Regel " C:\Users\<User>\AppData\Local\Temp\"), und die für den AppData-Roaming-Ordner sollte m.E. "GetAppContainerFolderPath(A)" (wie GetTempPath in KERNEL32.DLL) sein. Allerdings musst Du Dich da um einiges selbst kümmern, denn Windows legt das nicht einfach für jede Anwendung an, die es auf dem Rechner gibt.
Windows hat diverse API-Funktionen, um Ordnereinstellungen abzurufen, etwa "GetTempPath(A)", um den benutzerbezogenen Temp-Pfad abzurufen (in aller Regel " C:\Users\<User>\AppData\Local\Temp\"), und die für den AppData-Roaming-Ordner sollte m.E. "GetAppContainerFolderPath(A)" (wie GetTempPath in KERNEL32.DLL) sein. Allerdings musst Du Dich da um einiges selbst kümmern, denn Windows legt das nicht einfach für jede Anwendung an, die es auf dem Rechner gibt.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verzeichnis je User
Klaus,
wenn es nur um temporäre Daten geht mach ich das mit getEnv("TEMP"). Das schreibt sauber in den von Tom angesprochenen User-Temp-Ordner.
Stellt sich mir nur die Frage ob daß das ist was Du willst. Für mich klang das eher als wolltest Du was in das User-Doc-Verzeichnis legen, oder irgend was in der Richtung.
Jan
wenn es nur um temporäre Daten geht mach ich das mit getEnv("TEMP"). Das schreibt sauber in den von Tom angesprochenen User-Temp-Ordner.
Stellt sich mir nur die Frage ob daß das ist was Du willst. Für mich klang das eher als wolltest Du was in das User-Doc-Verzeichnis legen, oder irgend was in der Richtung.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verzeichnis je User
@Tom
Was ich erreichen möchte:
Jeder Anwender im Netz kann seine eigenen Druckereinstellungen haben, da es ja durchaus vorkommen kann, das der Anwender bestimmte Formulare (Briefe, etc)
auf seinem Arbeitsplatzdrucker anstatt auf einem Netzwerkdrucker drucken möchte.
@Jan
Temp ist sehr ungünstig, da sträuben sich mir die Haare.
Für mich bedeutet TEMP ein temporärer Ordner (leider wird der von Windows und Sonstiges zugemüllt und nicht mehr gelöscht wenn die Dateien und Ordner nicht mehr benötigt werden)
Die (Stamm)Daten sollen ja bleiben, deswegen mache ich das jetzt wie folgt.
Was ich erreichen möchte:
Jeder Anwender im Netz kann seine eigenen Druckereinstellungen haben, da es ja durchaus vorkommen kann, das der Anwender bestimmte Formulare (Briefe, etc)
auf seinem Arbeitsplatzdrucker anstatt auf einem Netzwerkdrucker drucken möchte.
@Jan
Temp ist sehr ungünstig, da sträuben sich mir die Haare.
Für mich bedeutet TEMP ein temporärer Ordner (leider wird der von Windows und Sonstiges zugemüllt und nicht mehr gelöscht wenn die Dateien und Ordner nicht mehr benötigt werden)
Die (Stamm)Daten sollen ja bleiben, deswegen mache ich das jetzt wie folgt.
Code: Alles auswählen
static function getRoamingDir
Local cRetCode := "", ;
cBenutzerDir := getenv("appdata")+"\HKABR"
IF Fexists("c:\spool\drform.dbf")
makedir(cBenutzerDir)
FileMove("c:\spool\drform.dbf",cBenutzerDir)
IF Fexists("c:\spool\drform.cdx")
FileMove("c:\spool\drform.cdx",cBenutzerDir)
ENDIF
IF Fexists("c:\spool\drform.str")
FileMove("c:\spool\drform.str",cBenutzerDir)
ENDIF
ENDIF
cRetCode := iif( Fexists(cBenutzerDir+"\drform.dbf"),cBenutzerDir+"\",cAppData)
Gruß
Klaus
Klaus
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: APPDATA / eigenes Verzeichnis je User
Hallo Klaus
ich lege die alle in einer Datenbank ab. War bis jetzt am einfachsten.
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verzeichnis je User [ERLEDIGT]
Hallo Carlo,
bisher war es für mich am einfachsten wenn jeder Arbeitsplatz auf Laufwerk C seinen eigenen Ordner mit der Datei hat.
Da habe ich bis auf den Pfad zu prüfen nichts anderes machen müssen.
bisher war es für mich am einfachsten wenn jeder Arbeitsplatz auf Laufwerk C seinen eigenen Ordner mit der Datei hat.
Da habe ich bis auf den Pfad zu prüfen nichts anderes machen müssen.
Gruß
Klaus
Klaus
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2950
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verzeichnis je User [ERLEDIGT]
Du könntest für jeden Benutzer ein eigenes Verzeichnis anlegen, z.B. mit
verz := "C:\Programm\" + GetEnv("CLIENTNAME") + "_" + upper(GetEnv("USERNAME")
verz := "C:\Programm\" + GetEnv("CLIENTNAME") + "_" + upper(GetEnv("USERNAME")
Viele Grüße
Wolfgang
Wolfgang
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: APPDATA / eigenes Verzeichnis je User [ERLEDIGT]
Genau zu diesem Zweck sind ja die AppData-Verzeichnisse gedacht, Wolfgang. Und dadurch, dass sie je nach Windows-Anmeldung in einem anderen Kontext liegen, sind sie eigentlich immer automatisch benutzerbezogen. Es sei denn, dieselbe Anmeldung wird von verschiedenen Leuten verwendet.
Herzlich,
Tom
Tom