Avatar billede elmoe Juniormester
15. april 2007 - 02:09 Der er 6 kommentarer og
1 løsning

Opret tekstfil i Vista

Er det muligt vha. StreamWriter at oprette en tekstfil i Windows Vista? Jeg har nemlig lidt på fornemmelsen at der er et eller andet sikkerhedsproblem.

Jeg kan godt skrive nedenstående tekstlinier til en allerede oprettet fil, men jeg kan ikke få c# til at oprette en ny tekstfil for mig.

System.IO.StreamWriter objSkrivFil = new System.IO.StreamWriter(@"c:\test.txt");
objSkrivFil.WriteLine("hej");
objSkrivFil.WriteLine("med");
objSkrivFil.WriteLine("dig");
objSkrivFil.Close();
objSkrivFil.Dispose();

Er der noget at gøre ved det?
Avatar billede arne_v Ekspert
15. april 2007 - 04:27 #1
hvilken fejl får du ?
Avatar billede morhan Novice
15. april 2007 - 05:21 #2
et vildt gæt er, at den konto, som programmet bliver kørt under, ikke har ntfs rettigheder til at skrive i roden af drevet
Avatar billede mrbonus Novice
15. april 2007 - 08:55 #3
prøv med

System.IO.File.Create(@"c:\test.txt");

den burde virke, med mindre der er noget sikkerhed der ødelægger det for dig
Avatar billede elmoe Juniormester
15. april 2007 - 09:27 #4
Så har jeg fundet ud af hvad der gør at jeg ikke kan få lov til at oprette en fil. Det er den indbyggede sikkerhedsfunktion i Vista: UAC (userAccountControl). Når jeg via en menu i slår UAC fra, så kan jeg oprette en fil med mit script. Nu står jeg så bare i et nyt problem. Nogen gode ideer til hvordan jeg slår UAC fra via min c# kode?
Avatar billede mr-kill Nybegynder
15. april 2007 - 10:19 #5
Hvad med bare at køre dit program med admin rettigheder? Bare højreklik og vælg "kør som adminstrator"
Avatar billede driis Nybegynder
15. april 2007 - 10:20 #6
Det tror jeg ikke du kan, uden at få brugerens godkendelse gennem en UAC prompt (det ville jo ligesom ødelægge formålet med UAC).

Det, at du har slået UAC fra, hjælper i øvrigt ikke, hvis brugeren der kører dit program er en standard-bruger uden administratorrettigheder.

I Vista har normale brugere per default ikke skriverettigheder til C:\Windows; C:\Program Files, og nogle andre steder.

Jeg ser 3 muligheder for dig:
* At få sat de rette NTFS rettigheder på de steder, du vil skrive til, under installationen af dit program (installationen skal så køre elevated)
* At vælge en anden placering til dine filer med mindre restriktive rettigheder.
* At launche en elevated process, som skriver dine filer. Du kan launche en elevated process ved at bruge ShellExecute og lade verbet være "runas". Brugeren bliver så præsenteret for en UAC prompt, hvis det er nødvendigt.
Avatar billede elmoe Juniormester
21. september 2007 - 14:41 #7
Tak for svarene. De har været til stor hjælp :)
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