.. filen bliver brugt af en anden proces.

Tags:    c#

Oy!

Jeg forsøger at lave en highscore-liste til et lille spil jeg har lavet. For at gøre det, så henter jeg hele indholdet af en fil, jeg kalder: Highscore.txt ind i en string, jeg kalder highscoretabel:

Fold kodeboks ind/udKode 


Så mener jeg også, at min StreamReader må være lukket, men når jeg vil slette den gamle Highscore.txt, for derefter at skrive den igen (med den nye score), så siger Microsoft Visual C# Express Edition, at Highscore.txt ikke kan slettes, da filen bruges af en anden proces.

Jeg har hentet Process Explorer fra Microsofts hjemmeside, og det program siger, at det kun er mit program, der bruger Highscore.txt

Jeg har set at der er mange, der har haft samme problem, men jeg har ikke rigtig fundet en løsning. Lukker jeg StreamReader forkert?




Så vidt jeg kan læse mig til, så viker .close() ikke med det samme, da den giver opgaven videre til garbagecollectoren.

Løsningen er at bruge Using og du slipper for at tænke på close:

using(TextReader tr = new StreamReader("highscore.txt"))
{
string Scoretabel = tr.ReadToEnd();
}

http://bytes.com/topic/c-sharp/answers/237536-streamwriter-streamreader-closing-files



Mange tak :)

Jeg fandt samme råd under min egen søgning, og har testet at det virker, men tak alligevel :)



Oy!

Jeg forsøger at lave en highscore-liste til et lille spil jeg har lavet. For at gøre det, så henter jeg hele indholdet af en fil, jeg kalder: Highscore.txt ind i en string, jeg kalder highscoretabel:

Fold kodeboks ind/udKode 


Så mener jeg også, at min StreamReader må være lukket, men når jeg vil slette den gamle Highscore.txt, for derefter at skrive den igen (med den nye score), så siger Microsoft Visual C# Express Edition, at Highscore.txt ikke kan slettes, da filen bruges af en anden proces.

Jeg har hentet Process Explorer fra Microsofts hjemmeside, og det program siger, at det kun er mit program, der bruger Highscore.txt

Jeg har set at der er mange, der har haft samme problem, men jeg har ikke rigtig fundet en løsning. Lukker jeg StreamReader forkert?


Hvorfor ikke bare bruge... ?
Fold kodeboks ind/udKode 




t