Frage

Wir haben einige C# - code, der liest Daten aus einer text-Datei mit einem StreamReader.Auf einem computer können wir Lesen von Daten aus der text-Datei, auch nachdem Sie gelöscht wurde oder durch einen anderen text-Datei - die Datei.Existiert Anruf meldet, dass die Datei vorhanden ist, auch wenn er nicht im Windows-Explorer.Allerdings auf einem anderen computer dieses Verhalten nicht passieren.Beide Computer mit Vista Business und .NET 2.0.50727 SP2.

Wir haben versucht, einen Neustart der Maschine ohne eine Auflösung.

Hat jemand irgendwelche verstehen, wie dies möglich sein könnte, und Informationen über mögliche Lösungen?

Vielen Dank, Alan

War es hilfreich?

Lösung

Könnte dies ein Ordner Virtualisierung Problem?

Andere Tipps

Von MSDN

Die Exists-Methode sollte nicht verwendet werden für Pfad-Validierung, diese Methode lediglich überprüft, ob die im Pfad angegebene Datei existiert.
Bewusst sein, dass ein anderer Prozess kann möglicherweise etwas zu tun mit der Datei in der Zeit zwischen Ihnen rufen Sie die Exists-Methode und führen Sie eine andere operation auf die Datei, wie Löschen.Programmierung empfohlen ist, wickeln Sie die Exists-Methode, und die Vorgänge, die Sie auf der Datei, die in einem try...catch-block wie im Beispiel gezeigt.Dies hilft zu schmal der Umfang für potenzielle Konflikte.Die Exists-Methode kann nur dann helfen, um sicherzustellen, dass Sie die Datei verfügbar sein, können Sie garantieren es.

Ist die Datei zum Lesen geöffnet werden kann, bevor es gelöscht wird? Wenn ja, dann ist es nicht unerwartet, noch in der Lage sein, aus der geöffneten Datei zu lesen, selbst nachdem das Dateisystem sonst hat lassen Sie es geht.

RE: File.Exists():

File.Exists ist von Natur aus anfällig für Rennbedingungen. Es soll nicht als exklusive Art und Weise verwendet werden, um zu überprüfen, ob eine Datei tut oder nicht existiert, bevor eine Operation durchgeführt wird. Dieser Fehler kann in einer Sicherheitslücke in der Software häufig zur Folge hat.

Rather, immer die Ausnahmen behandeln, die von Ihren tatsächlichen Dateioperationen geworfen werden können, dass offene, etc, und überprüfen Sie Ihre Eingabe, wenn es geöffnet ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top