2012-04-09 7 views
0

Ich schreibe eine einfache Ordner-Synchronisierung App.Vermeiden Sie Fehler beim Kopieren einer Datei und ein anderer Prozess schreibt darauf

Daher möchte ich zu der Zeit, eine Datei im Quellordner erstellt wird, sollte es auf das Ziel kopiert werden.

Meine Frage ist: Wie kann ich Fehler vermeiden, wenn Sie versuchen, die Quelldatei zu lesen, da ein anderer Prozess vielleicht darauf schreiben möchte? Sollte ich die Datei im Read Write Share-Modus lesen oder ist eine einfache System.IO.File.Copy genug?

Danke!

+0

Möchten Sie Autoren blockieren oder möchten Sie diese zulassen? Wenn Letzteres, willst du ihre Änderungen sehen oder nicht? –

+0

Ich möchte Autoren erlauben. Es macht mir nichts aus, wenn der Kopiervorgang fehlschlägt, aber der Schreibprozess nicht fehlschlagen sollte. – alexandertr

Antwort

0

Dateikopie wird die Datei während des Kopiervorgangs sperren.
Wenn es nicht gesperrt wurde, wird die Datei während des Kopierens von einem anderen Prozess
So könnte beschädigt werden, wenn Sie den Kopiervorgang zu starten gibt es zwei Möglichkeiten:

  • Keine eine Sperre auf der Quelldatei hat, dann startet File.Copy seine Arbeit und sperrt die Quelldatei.
  • Jemand hat eine Sperre für die Quelldatei, und File.Copy löst dann eine Ausnahme aus.
Verwandte Themen