2010-03-03 8 views

Antwort

23

Keine.

File.Open ist, intern, nichts anderes als:

public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share) 
{ 
    return new FileStream(path, mode, access, share); 
} 

Wenn Sie nicht über die Überlastung benutzen, die eine Dateiablage und Fileshare gibt es das für Sie gibt (mit FileShare.NONE und Fileaccess .Write an append oder ReadWrite andernfalls).

Das ist gesagt, dies ist ein Implementierungsdetail, nicht Teil der documentation. Technisch könnte eine zukünftige .NET Framework-Version eine andere Implementierung verwenden, obwohl ich das unwahrscheinlich finde.

5

File.Open() ist eine bequeme Methode. Intern ist es implementiert als:

public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share) 
{ 
    return new FileStream(path, mode, access, share); 
} 
+0

... neben seinen Geschwistern File.OpenRead und File.OpenText – Powerlord

16

Diese Art der Duplizierung ist sehr selten im .NET-Framework. Aber es gibt eine Geschichte darüber, erzählt von Krzysztof Cwalina in this lecture. Sie haben eine Usability-Studie zu einer frühen Version des Frameworks durchgeführt und eine Gruppe erfahrener (aber ansonsten .NET-agnostischer) Programmierer gebeten, mit den Klassen FileStream und StreadReader/Writer Code zu schreiben.

Es lief nicht gut, sie haben eine Fehlerrate von 100%. Sie reagierten, indem sie der System.IO.File-Klasse Methoden hinzufügten, indem sie den Ansatz "Am wahrscheinlichsten, dass sie in die Grube des Erfolgs fallen" verwendeten.

Coole Video BTW, wenn Sie überhaupt in die Gründe sind, die das Framework so aussieht wie es aussieht.

Bessere echte Antwort: Die File.Open() -Methode ruft den FileStream-Konstruktor auf und übergibt Werte für FileAccess und FileShare (wenn Sie sie nicht angeben), die am ehesten das Richtige tun. Was ist FileAccess.ReadWrite und FileShare.None.

+0

Können Sie den Link aktualisieren? – brumScouse

+0

Aktualisiert. Vorsicht, es ist eine 500-MB-ZIP-Datei. –

+2

Die Verbindung ist wieder unterbrochen – HeyJude

Verwandte Themen