- Home /
StreamWriter problems in Unity 5?
I just upgraded to Unity 5 and imported my project to it. Everything works good except I can´t get StreamWriter to function properly. It all worked just fine before, but now it seems like it won´t create the file/save the file. This is my code :
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
public class WriteToXML : MonoBehaviour
{
public string textInput;
public string imagePath;
public GameObject GameManager;
public GameObject TakeImage;
private GetText getText;
private TakeImage takeImage;
XmlDocument xmlFile;
string pathTilXMLFil;
void Start(){
xmlFile = new XmlDocument();
getText = GameManager.GetComponent<GetText>();
takeImage = TakeImage.GetComponent<TakeImage>();
pathTilXMLFil = Application.persistentDataPath + "/oppgaveliste.txt";
}
void Update(){
textInput = getText.textInput;
imagePath = takeImage.imagePath;
}
public void OnMouseDown(){
if(imagePath != null && textInput != null){
WriteToXml ();
}else{
Debug.Log("Du mangler bildet eller tekst!");
}
}
public void WriteToXml()
{
if(File.Exists(pathTilXMLFil))
{
xmlFile.Load(pathTilXMLFil);
Debug.Log ("JEG FANT FILEN!!!!!!!!");
XmlElement fileRoot = xmlFile.DocumentElement;
Debug.Log (fileRoot + " funnet");
XmlElement oppgave = xmlFile.CreateElement("oppgave");
XmlElement descriptionNode = xmlFile.CreateElement("beskrivelse");
descriptionNode.InnerText = textInput;
XmlElement picturePath = xmlFile.CreateElement("bildefil");
picturePath.InnerText = imagePath;
fileRoot.AppendChild(oppgave);
oppgave.AppendChild(descriptionNode);
oppgave.AppendChild(picturePath);
xmlFile.Save(pathTilXMLFil);
}else if(!File.Exists(pathTilXMLFil)){
Debug.Log ("FINNER IKKE FILEN!!!!");
using (StreamWriter sw = File.CreateText(pathTilXMLFil))
{
sw.WriteLine("<oppgaveliste>");
sw.WriteLine("<oppgave>");
sw.WriteLine("<beskrivelse>" + textInput + "</beskrivelse>");
sw.WriteLine("<bildefil>" + imagePath + "</bildefil>");
sw.WriteLine("</oppgave>");
sw.WriteLine("</oppgaveliste>");
}
}
}
}
Every time I run "WriteToXML" it goes to !File.Exists(pathTilXMLFil and creates a new file. If I restart the app on iOS, the file is not there at all. So I figure this is something with StreamWriter. Why does has it stopped working? Any ideas?
Hey nypraise,
did you get any solutions to that? I am facing a very similar problem as my StreamWriter does not update the file everytime. It seems like it gets locked, even when I use the close() or flush() methods.
Your answer
Follow this Question
Related Questions
How can I read an XML file in Android ? I can't access it 1 Answer
C# Getting only the Name of the XML File and not the Directory of the XML File 2 Answers
XmlWriter.Create exception, "Could not find the file..." on Android 0 Answers
Streaming music from a folder or file 0 Answers
Could not load file or assembly 'nunit.core.interfaces (Unity 5.3 and 5.4 only) 0 Answers