Gå til innhold

Anbefalte innlegg

Hei.

 

Har en applikasjon hvor brukeren skal velge install path til en applikasjon i en folderBrowser. Dette er en applikasjon som skal kjøres flere ganger, så det hadde vært ønskelig at applikasjonen husket på denne pathen til neste gang den kjøres.

Er ikke veldig keen på å skive til fil for å si det sånn... Det må vel være en enklere måte?

Lenke til kommentar
Videoannonse
Annonse
  • 1 måned senere...

Kan du ikke bare lagre file pathen i en fil en eller annen plass?

 

string installPath = ""; // Applicasjonen installeres til denne strengen
string LocPath = System.Environment.GetFolderPath(SpecialFolder.LocalApplicationData); //Streng til /*USER*/+/Appdata/Local
string InstPath_File = LocPath + "/instPath.pth"; // Path til filen men installPath

// Hvis filen finnes, bruk innholdet
if(System.IO.File.Excists(InstPath_File))
 installPath = System.IO.File.ReadAllText(InstPath);
// Hvis ikke, la brukeren velge selv, så lagre filen men strengen til neste gang
else {
 //************************************
 //Code to make your user choose install path
 //OpenFileDialog and such
 //************************************
 System.IO.File.WriteAllText(InstPath_File, installPath);
}

 

Enkelt som bare det. :)

 

(Hvis du vil se denne koden orentlig, kopier den og legg den til i notepad eller ett annet "bredere" vindu)

Endret av dahwan
Lenke til kommentar
"Hvorfor ikke fil" og "enkelt som bare det", sånn etter at eksempelet med Registry var pastet, som var 2 linjer langt, mye raskere OG enklere...

 

Til hans forsvar:

 

string ConfigFile = Environment.GetFolderPath(SpecialFolder.LocalApplicationData) + "install.path";

string installPath = File.Exists( ConfigFile ) ? null : File.ReadAllText( ConfigFile );

 

File.WriteAllText( ConfigFile , installPath );

 

 

Unødvendige variabler og kommentarer som gjorde at det så så ille ut....

 

 

 

Edit: Hvordan klarte jeg å quote meg selv? :D

Edit2: Åja.... argh, fredag og sliten...,.. :cry:

Endret av jorn79
Lenke til kommentar

OK, beklager :)

 

Jeg tenkte bare at registry så såpass avansert ut at jeg ville ikke ha forstått det for 5 måneder siden, og du må nesten bruke visual studio eller noe lignende for å ha med settings, så å lage en fil trengs kansje mer kode, men jeg likte metoden å gjøre det på :p

 

Sorry

Lenke til kommentar
Støtter Registry helt klart!!

 

Og det er superenkelt:

Registry.SetValue("HKEY_CURRENT_USER\\Mitt kule program","Forrige Path",valgtPath);

valgtPath = (string) Registry.GetValue("HKEY_CURRENT_USER\\Mitt kule program","Forrige Path", "No path selected");

 

Bare som en kommentar, synes jeg det er litt finere å gjøre det slik:

 

Microsoft.Win32.Registry.CurrentUser.CreateSubKey("mittKuleProgam").SetValue("path", installPath);

og

string installPath = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("mittKuleProgram").GetValue("path");

 

Slipper å måtte escape \ eller tenke på at HKEY_CURRENT_USER er skrevet riktig og slikt ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...