Überprüfen, ob eine Datei in Benutzung ist, warten Sie bis zum Ende

Ich habe dieses problem in meiner Anwendung:

  • Schritt 1 - erstellen Sie eine Datei (xml) mit Inhalt in es
  • Schritt 2 - ein 3rd-party-Anwendung die Datei geöffnet wird und Holen Sie sich die info aus der Datei in Schritt 1 vorgenommen.
  • Schritt 3 - löschen Sie die Datei erneut.

Die erste Frage, die ich habe, ist über diesen Teil des Codes:

XmlDocument xmlDoc = new XmlDocument();
DataSet ds = //use a method to put in the data
xmlDoc.LoadXml(ds.GetXml());
xmlDoc.Save("Filename");
//...
Process.Start(startInfo);

Ist meine Annahme richtig, dass die Letzte Zeile wird nur ausgeführt, wenn die oben bereits getan?
Also ich kann 100% sicher sein, dass die Daten alle in der xml-bevor versucht wird, starten Sie es richtig?

Den zweiten Teil, wo bekomme ich nun einen Fehler ist hier:

Process.Start(startInfo);
File.Delete("Filename");

Was jetzt passiert, ist, dass die Datei schon gelöscht wird, bevor die 3rd-party-Programm gelesen hatte, die es in seinem Speicher.

Gibt es eine Möglichkeit, dass ich überprüfen kann, dass die Datei nicht mehr in Gebrauch ist, oder irgendeine stabile Art und Weise zu warten?

Ich bereits einen Weg gefunden, verwenden Sie Thread.Sleep(TimeInMiliSec); aber ich denke, das ist nicht die richtige Art, dies zu tun (eher wie ein workaround-Lösung)?

InformationsquelleAutor Dante1986 | 2012-01-25

Schreibe einen Kommentar