[Bug] GetHomeDirectory()

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

[Bug] GetHomeDirectory()

Beitrag von ts-soft »

GetHomeDirectory() gibt bei mir:
Debugger hat geschrieben:\Dokumente und Einstellungen\Thomas
1. Es fehlt das Laufwerk (welches nicht immer C: sein muß)

2. Dieses Verzeichnis ist ziemlich sinnlos, weil:
die darunter liegenden benutzerspeziefischen Ordner, lokalisierte Namen
haben, und man sowieso per API abfragen muß, Anwendungsdaten oder
AppData, usw.

Unter Windows wäre diese Funktion eigentlich nur Sinnvoll nutzbar, wenn sie
auf "Eigene Dateien" verweisen würde (einschließlich Laufwerk :wink: )
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
emptee
Beiträge: 10
Registriert: 13.09.2004 11:44
Wohnort: Dortmund
Kontaktdaten:

Re: [Bug] GetHomeDirectory()

Beitrag von emptee »

ts-soft hat geschrieben:GetHomeDirectory() gibt bei mir:
Debugger hat geschrieben:\Dokumente und Einstellungen\Thomas
1. Es fehlt das Laufwerk (welches nicht immer C: sein muß)

2. Dieses Verzeichnis ist ziemlich sinnlos, weil:
die darunter liegenden benutzerspeziefischen Ordner, lokalisierte Namen
haben, und man sowieso per API abfragen muß, Anwendungsdaten oder
AppData, usw.
Es ist halt anscheinend die direkte Ausgabe der Umgebungsvariable HOMEPATH. Bloss bei Windows gibt es dann auch noch passend dazu die Variable HOMEDRIVE, in der das Laufwerk steht.

Konsequenterweise müsste PB also auch noch den Befehl "GetHomeDrive()" implementieren.

ciao, Mario
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ja, aber dieser Ordner ist unter Windows nicht sinnvoll nutzbar. Alle darunter liegenden Ordner sind doch sprachspezifisch. Wenn ich allso in die Anwendungsdaten von jemanden Schreiben will, kann ich das so nicht machen. Und dies betrifft alle darin befindlichen Ordner.

Das schlimme dabei, es wird dann trotzdem genutzt, dann hängen die Anfänger zum Beispiel: "Eigene Dateien" hinten dran und schon gehts in die Hose, weil der Ordner bei mir auf einer ganz anderen Partion liegt.

Entweder man verzichtet auf die Umsetzung dieser Funktion nach Windows, weil es so sinnlos ist, nur zu Fehlern führen könnte, oder wie gesagt nach Eigene Dateien, so das es wenigstens halbwegs seinen Zweck erfüllt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
emptee
Beiträge: 10
Registriert: 13.09.2004 11:44
Wohnort: Dortmund
Kontaktdaten:

Beitrag von emptee »

ts-soft hat geschrieben:Ja, aber dieser Ordner ist unter Windows nicht sinnvoll nutzbar. Alle darunter liegenden Ordner sind doch sprachspezifisch. Wenn ich allso in die Anwendungsdaten von jemanden Schreiben will, kann ich das so nicht machen. Und dies betrifft alle darin befindlichen Ordner.
Das stimmt allerdings.

Dieser Befehl ist meiner Meinung nach sowieso überflüssig, da man die entsprechende Information in exakt der gleichen Qualität auch über ein
GetEnvironmentVariable("HOMEPATH") bekommt (und natürlich auch vorher schon mit GetEnvironmentVariable_(@name, @value, @size))

Und Du hast natürlich recht, daß ein "echter" Befehl noch zusätzlich dafür sorgt, daß dieses Verzeichnis ohne größeres Nachdenken und unter Ignorieren der von Dir genannten Probleme genutzt werden wird.

Also wirklich am besten wieder weg damit ;-)

ciao, Mario
http://www.surfkraft.de - instrumental surf weblog
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46
Wohnort: Luxemburg
Kontaktdaten:

Beitrag von hardfalcon »

Der Pfad OHNE die "Eigene Dateien" am Ende 8aber natürlich MIT dem Laufwerksbuchstaben am Anfang) macht durchaus Sinn, esgibt auch viele Programme, die in diesen Ordner schreiben. allerdings wäre es sicher besser, wenn man mit einem zusätzlichen Flag zwischen beiden auswählen könnte. Eventuell auch noch eine Option für den Desktop-Pfad? Man könnte das ganze doch so umsetzen, dass die Flags nur unter den Betriebssystem "umgesetzt" werden, wo sie auch Sinn machen, sodass man z.B. das "Eigene Dateien"-Flag unter Linux ignorieren könnte... (Somit wären Windows-Sources, die dieses Feature nutzen, ja immer noch unter Linux oder MacOS X compilefähig...)
„Warum siehst du den Splitter im Auge deines Bruders, aber den dicken fetten schwarzen Zensurbalken vor deinem Auge bemerkst du nicht?“
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

hardfalcon hat geschrieben:Der Pfad OHNE die "Eigene Dateien" am Ende 8aber natürlich MIT dem Laufwerksbuchstaben am Anfang) macht durchaus Sinn,
Nein, begreifste das nicht.
Eigene Datein liegt bei mir auf: E:\Eigene Dateien, und bei vielen anderen wird das auch nicht auf C: liegen, weil man dann vor einer Windows-Neuinstallation alles sichern muß, bzw. man kommt garnicht mehr dran, wenn Windows nicht mehr startet.

An diesem Verzeichnis interessant sind nur die Unterordner, die darin enthalten sind, aber die haben leider je nach Ländereinstellung unterschiedliche Namen, so das man diese dann doch per API ermitteln muß, um zu korrekten Pfaden zu kommen.

In dem jetzt ermitteltem Ordner sollte man ja keine eigenen Ordner erstellen, sondern Einstellungen für Programme für den User erfolgen in der Registry oder in AppData. AppData heißt auf dt. System Anwendungsdaten und englischen Application Data.

Also kann der von dieser Funktion ermittelte Pfad nur dazu führen, das falsche Ordner verwendet werden, weil die meisten nicht soviel über Windows Wissen. Diejenigen die es Wissen, werden die Funktion also nicht verwenden, so das nur die Falschverwendung übrig bleibt :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

ts-soft hat geschrieben:
hardfalcon hat geschrieben:Der Pfad OHNE die "Eigene Dateien" am Ende 8aber natürlich MIT dem Laufwerksbuchstaben am Anfang) macht durchaus Sinn,
Nein, begreifste das nicht.
Eigene Datein liegt bei mir auf: E:\Eigene Dateien, und bei vielen anderen wird das auch nicht auf C: liegen, weil man dann vor einer Windows-Neuinstallation alles sichern muß, bzw. man kommt garnicht mehr dran, wenn Windows nicht mehr startet.

An diesem Verzeichnis interessant sind nur die Unterordner, die darin enthalten sind, aber die haben leider je nach Ländereinstellung unterschiedliche Namen, so das man diese dann doch per API ermitteln muß, um zu korrekten Pfaden zu kommen.

In dem jetzt ermitteltem Ordner sollte man ja keine eigenen Ordner erstellen, sondern Einstellungen für Programme für den User erfolgen in der Registry oder in AppData. AppData heißt auf dt. System Anwendungsdaten und englischen Application Data.

Also kann der von dieser Funktion ermittelte Pfad nur dazu führen, das falsche Ordner verwendet werden, weil die meisten nicht soviel über Windows Wissen. Diejenigen die es Wissen, werden die Funktion also nicht verwenden, so das nur die Falschverwendung übrig bleibt :wink:
Sehe ich auch so, der Befehl ist wohl noch etwas unbedacht. Andererseits darf man aber auch die Plattformunabhängigkeit nicht vergessen, da müsste man noch einmal drüber nachdenken ob das irgendwelche Auswirkungen auf die Funktionsweise haben könnte, die Benutzerverzeichnise unter Linux und Mac sind ja schon etwas anders aufgebaut :|
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@freedimension

Deswegen würde ich ja Vorschlagen, das die Funktion den Ordner "Eigene Dateien" ermittelt, kommt der Sache am nächsten und wird ja gebraucht.

Wäre Nett, wenn Du das in geeigneter Form im engl. Forum Vortragen könntest
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46
Wohnort: Luxemburg
Kontaktdaten:

Beitrag von hardfalcon »

@ts-soft_ stimmt, sry, ich hab das Verzeichnis mit dem "Application Data"-Ordner verwechselt... :oops:
„Warum siehst du den Splitter im Auge deines Bruders, aber den dicken fetten schwarzen Zensurbalken vor deinem Auge bemerkst du nicht?“
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag von FloHimself »

home directory != Eigene Dateien

Das home directory kommt aus der Unix/Linux Welt und dort werden
Einstellungen für die einzelnen User gespeichert. Daher wohl auch ohne
Laufwerksangabe.

Unter Windows wird dazu ja meist die Registry benutzt, daher gibt es kein
richtiges Äquivalent. Programme die allerdings unter Unix/Linux und
Windows laufen, nutzen nicht selten das von dir genannte Verzeichnis.

Um die benutzerspezifischen Ordner zu lokalisieren gibt es unter
Windows SHGetSpecialFolderLocation.
Antworten