3 Stimmen

Wo werden globale Anwendungsdaten in Vista platziert?

Wo auf einem Windows (Vista) System sollte ich Daten platzieren, die für jeden, d.h. jeden Benutzer des Computers, lesbar und beschreibbar sein sollen? Die Konzepte von Vista mit den Verzeichnissen C:\Users\xxx\AppData\Something, C:\Program Files und C:\ProgramData sowie der UAC sind etwas verwirrend.

Außerdem, gibt es eine fertige Lösung, um diese Speicherorte mit Java zu bestimmen? Ich vermute, dass dies eine Interaktion mit nativen Bibliotheken erfordert, da System.getProperties nur user.home und user.dir hat, von denen keines global beschreibbar ist.

5voto

Scott Langham Punkte 55597

In Vista ist der Ort c:\ProgramData, das ersetzt was früher C:\Documents and Settings\AllUsers\AppData in XP war.

Ich bin mir nicht sicher über die Details, wie man das in Java macht.. aber, die Umgebungsvariable ALLUSERSPROFILE gibt dir den Pfad, wenn du darauf Zugriff bekommen kannst. Du solltest das immer anstelle des hart codierten Pfads verwenden, denn der Ordnername ändert sich in verschiedenen internationalisierten Versionen des Betriebssystems.

5voto

blak3r Punkte 15398

Wenn Sie Benutzern, die keine Administratorrechte haben, erlauben müssen, globale Einstellungen zu ändern, ist der richtige Ansatz, ein Installationsprogramm für die Anwendung zu erstellen und während der Installation die Berechtigungen für den Ordner "Common Application Data" so festzulegen, dass Benutzer Schreibrechte haben.

Siehe diesen Beitrag: Wo sollten gemeinsame beschreibbare Anwendungsdateien abgelegt werden?

2voto

gustafc Punkte 27673

Sofern die Daten nicht wirklich groß sind, sollten Sie sich vielleicht die Preferences-API etwas genauer ansehen; insbesondere Preferences.systemNodeForPackage. Dies bietet Ihnen eine plattformunabhängige, systemweite, backend-agnostische Speicherlösung, wenn Sie das suchen.

1voto

majkinetor Punkte 8294

Darüber hinaus gibt es eine fertige Lösung, um diese Standorte mit Java zu bestimmen?

Sie können geeignete Umgebungsvariablen überprüfen, z. B. %PROGRAMDATA%, %PROGRAMFILES% und andere.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X