2009-04-15 3 views
3

Wo in einem Windows (Vista) System soll ich Daten legt das sollte lesbar und beschreibbaren von allen sein, das heißt jeden Benutzer des Computers? Vista Konzepte von C: \ Users \ xxx \ AppData \ etwas, C: \ Programme und C: \ ProgramData Verzeichnisse und UAC sind ein bisschen verwirrend.Wohin mit globalen Anwendungsdaten in Vista?

Darüber hinaus gibt es eine fertige Lösung, diese Stellen mit Java zu bestimmen? Ich nehme an, dass es einige Interaktion mit nativen Bibliotheken, da System.getProperties erfordert gerade user.home und user.dir, von denen keiner global beschreibbar.

Antwort

5

in Vista C: \ Program der Ort ist, ersetzt es das, was C verwendet werden soll: \ Dokumente und Einstellungen \ AllUsers \ AppData in XP.

Ich bin nicht sicher über die Besonderheiten dieses in Java zu tun .. aber die ALLUSERSPROFILE Umgebungsvariable gibt Ihnen den Weg, wenn Sie halten, dass zu bekommen. Sie sollten dies immer verwenden, anstatt den Pfad hart zu codieren, da sich der Ordnername auf verschiedenen internationalisierten Versionen des Betriebssystems ändert.

+0

Danke! Es scheint, dass System.getenv ("ALLUSERSPROFILE") mindestens C: \ ProgramData auf meinem System gibt. –

+1

C: \ ProgramData erfordert, dass der Benutzer über Administratorberechtigungen zum Schreiben verfügt. Siehe meinen Beitrag unten. – blak3r

1

Desweiteren gibt es eine fertige Lösung, um diese Standorte mit Java zu bestimmen?

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

5

Wenn Sie Benutzern, die nicht über Administratorrechte verfügen, erlauben können, die globalen Einstellungen zu ändern, müssen Sie ein Installationsprogramm für die Anwendung erstellen und während der Installation die Berechtigungen für den Ordner "Allgemeine Anwendungsdaten" festlegen Benutzerbereich darf darauf schreiben.

Siehe diesen Beitrag: Where to put common writable application files?