Der Code, den ich unten enthalten habe, schreibt erfolgreich in eine CSV-Datei. Aber wenn die CSV-Datei, mit der ich schreibe, in Excel geöffnet ist, erhalte ich eine System.IO.Exception
, die anzeigt, dass "die Datei von einem anderen Prozess verwendet wird".Vermeiden Sie "Datei von einem anderen Prozess verwendet" IO-Ausnahme
Wie kann ich meinen Code ändern, damit das Programm weiterläuft und warten, bis die CSV in Excel nicht mehr geöffnet ist?
private void timer1_Tick(object sender, EventArgs e)
{
int actmonth, actyear, actsecond;
System.DateTime fecha = System.DateTime.Now;
actmonth = fecha.Month;
actyear = fecha.Year;
if (actmonth <= 9)
{
valorfechaact = System.Convert.ToString(actyear) + "00" + System.Convert.ToString(actmonth);
}
else
{
valorfechaact = System.Convert.ToString(actyear) + "0" + System.Convert.ToString(actmonth);
}
actsecond = fecha.Second;
string label;
label = label1.Text;
string at = "@";
string filename = valorfechaact + ".csv";
string ruta3 = System.IO.Path.Combine(at, label, filename);
if (Directory.Exists(label1.Text))
{
StreamWriter wr = new StreamWriter(ruta3, true);
wr.WriteLine("1asd" + actsecond);
wr.Close();
wr.Dispose();
}
else
{
System.Console.WriteLine("no se puede escribir en el archivo");
timer1.Stop();
}
}
helfen Sie die Datei nicht, wenn seine offene innerhalb Excel als Excel wird es sperren überschreiben können. Sie könnten die Datei immer wieder mit einem eindeutigen Namen schreiben, wenn der IO-Fehler auftritt. –
@AlexK. Danke für deine schnelle Antwort, wie kann ich das tun? –
versuchen/fangen bei dieser Ausnahme? –