public void actualizarProjecto(Projecto p) { string file, schema; file = getFicheiro(p.getNome()); if (file.Length == 0) { file = p.getNome() + ".xml"; schema = file.Remove(file.Length - 4) + ".xsd"; File.Copy("exemplo.xml", file); } else { schema = file.Remove(file.Length - 4) + ".xsd"; } DataSet ds = new DataSet(); FileStream finschema = new FileStream("exemplo.xsd", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read); ds.ReadXmlSchema(finschema); finschema.Close(); FileStream findata = new FileStream(file, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite); ds.ReadXml(findata); findata.Close(); foreach (DataRow dr in ds.Tables["projecto"].Rows) { dr["nome"] = p.getNome(); dr["data"] = DateTime.Now; dr["Filtros"] = p.getFiltros(); } foreach (DataRow dr in ds.Tables["Propriedades"].Rows) { dr["url"] = p.getUrlInicial(); } foreach (DataRow dr in ds.Tables["Propriedades"].Rows) { dr["pasta"] = p.getPasta(); dr["visualizacaolocal"] = p.getvisualizacaolocal(); dr["niveis"] = p.getNivel(); dr["imagensremotas"] = p.getImagensRemotas(); dr["aceitarrejeitar"] = p.getAceitarRejeitar(); } FileStream fout = new FileStream(file, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite); //Only write the Xml data to the stream ds.WriteXml(fout); //Close the Stream fout.Close(); }