I'm using the following line to create and write:
File.WriteAllText(caminho + cliente, xml);
In it I record an XML and then I treat it as follows:
if (File.Exists(caminho + cliente))
{
XmlTextReader xmlLer = new XmlTextReader(caminho + cliente);
bool ultimaTag = false;
while (xmlLer.Read())
{
switch (xmlLer.NodeType)
{
case XmlNodeType.Element:
nomeElemento = xmlLer.Name.ToString();
break;
case XmlNodeType.Text:
switch (nomeElemento)
{
case "id_parcela":
objPedidoParcelas.IdParcela = int.Parse(xmlLer.Value);
break;
case "id_pedido":
objPedidoParcelas.IdPedido = int.Parse(xmlLer.Value);
break;
case "forma_pagamento":
objPedidoParcelas.FormaPagamento = Utils.RemoverAcentos(xmlLer.Value.ToString().ToUpper());
break;
case "data_vencimento":
objPedidoParcelas.DataVencimento = xmlLer.Value.ToString();
break;
case "valor":
objPedidoParcelas.Valor = xmlLer.Value.ToString();
break;
case "data_pagamento":
objPedidoParcelas.DataPagamento = xmlLer.Value.ToString();
break;
case "data_confirmacao":
objPedidoParcelas.DataConfirmacao = xmlLer.Value.ToString();
break;
case "valor_pago":
objPedidoParcelas.ValorPago = xmlLer.Value.ToString();
break;
case "local_pagamento":
objPedidoParcelas.LocalPagamento = Utils.RemoverAcentos(xmlLer.Value.ToString().ToUpper());
break;
case "observacao":
objPedidoParcelas.Observacao = Utils.RemoverAcentos(xmlLer.Value.ToString().ToUpper());
break;
case "id_forma_pagamento":
objPedidoParcelas.IdFormaPagamento = int.Parse(xmlLer.Value.ToString());
break;
case "qt_parcelas":
objPedidoParcelas.QtdParcelas = int.Parse(xmlLer.Value.ToString());
break;
case "status":
objPedidoParcelas.Status = Utils.RemoverAcentos(xmlLer.Value.ToString().ToUpper());
break;
}
break;
}
}
}
Soon I try to delete the file:
DirectoryInfo di = new DirectoryInfo(caminho);
foreach (FileInfo file in di.GetFiles())
{
file.Delete();
}
It says the file is being used by another process.
The file does not exist, it is created with the purpose of writing the XML and then reading it and then deleting it.