Avatar billede jps6kb Novice
19. oktober 2006 - 22:17 Der er 9 kommentarer og
1 løsning

Gemme XML fil et super sted.

Hej,

Jeg sidder og kæmper med at lave et XML dokument.. eller, det går fint med at lave det, men jeg ville gerne have at det blev gemt i en undermappe i min applikation, ex. i en mappe der hed "XML".. hvem ved.
Problemet er bare, at jeg skal angive en komplet sti for det. Altså, noget med d:\dokumenter\Visual... og det virker ikke så godt når jeg engang skal have det smidt ud på en server jo.

Kan jeg ikke gemme det sådan lidt mere applikationsorienteret?

  • Website
  • XML
  MinDokument.xml
  • grafik
  Blah.gif

På den måde.
Avatar billede jps6kb Novice
19. oktober 2006 - 22:18 #1
Altså, det er den her sti jeg gerne vil undgå:

xmlDoc.Save(@"c:\tmp.xml");
Avatar billede bjarner Nybegynder
19. oktober 2006 - 23:43 #2
Hvad med

xmlDoc.Save(Path.GetFullPath(@".\XML\tmp.xml"));
Avatar billede bulgroz Nybegynder
20. oktober 2006 - 07:36 #3
Det er vel nærmere noget i denne stil du ønsker:

            // Example on different paths:
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine(Application.CommonAppDataPath);
            stringBuilder.AppendLine(Application.ExecutablePath);
            stringBuilder.AppendLine(Application.LocalUserAppDataPath);
            stringBuilder.AppendLine(Application.StartupPath);
            stringBuilder.AppendLine(Application.UserAppDataPath);
            // ...

            MessageBox.Show(stringBuilder.ToString());


Du bør nok anvende Application.UserAppDataPath, hvorunder du laver en folder til din App (og Xml)
Avatar billede jps6kb Novice
20. oktober 2006 - 10:40 #4
Det ser rigtig fornuftigt ud. Jeg vil prøve det når jeg kommer hjem i aften engang og melde tilbage. ;)
Avatar billede jps6kb Novice
20. oktober 2006 - 20:28 #5
Det virker vist kun i WinForms.. jeg skulle self have nævnt at det er en web applikation jeg laver :)
Nogle forslag der?
Avatar billede thanse21 Nybegynder
22. oktober 2006 - 00:01 #6
Hvis det er et webstide du bygger er der noget der hedder Server.MapPath(). Den er en fin metode til at finde den rigtige sti uden så mange dikkedarer.

Du kunne fx sige: xmlDoc.Save(Server.MapPath("~/XML/MitDokument.xml"));

Foklaring: MapPath() mapper en relativ sti til en absolut sti i den kontekst du kører i. I mit eksempel her betyder ~ at den skal starte i roden af dit WebSite og gå i mappen XML og gemme filen der. Så er det ligemeget om dit website ligger i c:\websites\skrammel1\skrammel2\skrammel3\MitWebsite eller i z:\websites\mitwebsite. Det vil altid blive gemt i mappen XML som en undermappe til dit rodkatalog.

Håber det hjalp.
Avatar billede jps6kb Novice
22. oktober 2006 - 01:02 #7
Jep.. det er jeg helt med på. Men det var mere, om der var nogle stier gemt i .NET klasser, så jeg kunne komme til ex. min app_code mappe eller sådan noget :)
Avatar billede thanse21 Nybegynder
23. oktober 2006 - 08:34 #8
Så vidt jeg ved er der ikke nogle "indbyggede" mapper som sådan. Men et oplagt sted er da App_data. Du kan tilgå de indbyggede asp.net mapper som du ville gøre med enhver anden mappe, men der er altså ikke nogen indbygget .NET funktion der kan give dig nogle af App_ mapperne
Avatar billede jps6kb Novice
24. oktober 2006 - 12:57 #9
Okay så. Jeg må tænke mig frem til en anden løsning så.
Tak for deltagelse om ikke andet. :)
Avatar billede slamsuger Nybegynder
25. oktober 2006 - 11:25 #10
Er der ikke nogen sikkerhedsmæssige problemer i at gemme filen i en "under" mappe hvor skal være skrive rettigheder for brugeren. Alternativt så oprette en mappe uden for browsebart område (som en inet_user ikke  kan nå) hvor du lægger filerne.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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