Beste Tweakers,
Al een aantal dagen worstel ik met het volgende probleem. Ik voer de methode ValidateXML uit om te kijken of een XML file valide is. Ik lees een tekstveld uit, en heb de waarde daarvan in de variabele content gezet. Vervolgens sla ik het op als tijdelijk bestand en lees het uit met XMLReader.
De manier waarop werkt in principe goed, er zijn vast makkelijkere manieren om te kijken of een XML bestand valide is. Wanneer de methode bij het deleten van de file aankomt, bij de finally, krijg ik de melding dat ik geen toegang kan krijgen tot het bestand. Naar mijn weten heb ik het bestand en de streams gesloten om zonder problemen toegang te mogen krijgen tot het bestand, helaas is dit niet het geval. Ik krijg de melding dat ik geen toegang tot het bestand kan krijgen.
Mijn doel is uiteraard ook om hiervan te leren, veel over deze fout gelezen via google maar niet tot een goed werkende oplossing kunnen komen. Wat zie ik over het hoofd?
Al een aantal dagen worstel ik met het volgende probleem. Ik voer de methode ValidateXML uit om te kijken of een XML file valide is. Ik lees een tekstveld uit, en heb de waarde daarvan in de variabele content gezet. Vervolgens sla ik het op als tijdelijk bestand en lees het uit met XMLReader.
De manier waarop werkt in principe goed, er zijn vast makkelijkere manieren om te kijken of een XML bestand valide is. Wanneer de methode bij het deleten van de file aankomt, bij de finally, krijg ik de melding dat ik geen toegang kan krijgen tot het bestand. Naar mijn weten heb ik het bestand en de streams gesloten om zonder problemen toegang te mogen krijgen tot het bestand, helaas is dit niet het geval. Ik krijg de melding dat ik geen toegang tot het bestand kan krijgen.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| public void ValidateXML() { //Dir + bestandsnaam String validate = @"data/validate.xml"; //Maak XML bestand TextWriter tw = new StreamWriter(validate); // Schrijf content weg, String met XML inhoud tw.WriteLine(content); //Sluit bestand tw.Close(); tw = null; try { //Open de XML file XmlReader reader = new XmlTextReader(validate); ///Doorloop, is de file valide zet test = true while (reader.Read()) { } test = true; //de reader sluiten reader.Close(); reader = null; } catch (XmlException) { //Wanneer er een XMLException optreedt, zet test = false test = false; } finally { FileInfo temp = new FileInfo(validate); //als laatste, de temp file verwijderen temp.Delete(); } } |
Mijn doel is uiteraard ook om hiervan te leren, veel over deze fout gelezen via google maar niet tot een goed werkende oplossing kunnen komen. Wat zie ik over het hoofd?