Avatar billede duckman Nybegynder
06. september 2004 - 14:57 Der er 5 kommentarer og
1 løsning

læsning af Windows systemvariable

Hej, jeg har brug for at læse windows system variablen %APPDATA% ind i mit java program.

Jeg har fundet frem til at man kan starte programmet med:
java -DAPPDATA="%APPDATA%" GUI
hvorefter man inde fra programmet så kan læse den via
System.getProperty("APPDATA");

den har typisk syntaksen:
"C:\Documents and Settings\BRUGER\Application Data"

problemet er bare, at når man starter en FileInputStream/FileOutStream med det som argument, får man en FileNotFoundException fordi Java jo vil have "\\" istedet for enkelt "\"

spørgsmålet er så:
1) findes der en smartere måde at få den indlæst på, end at starte med java -D ?
2) hvis nej, hvordan får man nemmest startet en FileInputStream/FileOutStream som kan læse/skrive fra den mappe?

mvh. Anders Jakobsen
Avatar billede arne_v Ekspert
06. september 2004 - 15:07 #1
Der skal kun 2 \ når det er konstante strenge ikke i -D properties.

Fejlen skyldes snarere at du skal have "" omkring hele filnavnet p.g.a.
mellemrum i navnet.
Avatar billede arne_v Ekspert
06. september 2004 - 15:11 #2
Der er ikke nogle virkeligt smarte måder.

Det er ret nemt at lave med JNI, hvis man absolut vil have det.
Avatar billede duckman Nybegynder
06. september 2004 - 15:25 #3
Jeg har jo netop "" rundt om %APPDATA% i dos:
java -DAPPDATA="%APPDATA%" GUI
hvis man i en dosprompt bare skriver
%APPDATA%
så mangler alt efter mellemrummet ganske vist, men med
"%APPDATA%"
kommer hele stien.
Avatar billede arne_v Ekspert
06. september 2004 - 15:50 #4
Jamen kommer de med ind og er i værdien fra System.getProperty("APPDATA") ?

Jeg kunne meget vel tænke mig at de blev skrællet væk.
Avatar billede arne_v Ekspert
06. september 2004 - 15:52 #5
Men det var kun et gæt.

Har du checket andre muligheder ?

Skrevet det komplette filnavn ud lige inden åbner filen og checket at det er OK ?

Checket at brugernavnet faktisk har adgang til at skrive der ?
Avatar billede duckman Nybegynder
06. september 2004 - 20:23 #6
nej, der er ikke "" med inde i programmet, men den skriver hele stien alligevel.
(med enkelt '\')
desuden har brugeren også rettigheder til at skrive.

nu har vi så besluttet bare at hardkode det, da vi ikke gider at bruge tid på det.

ellers tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester