Wie finde ich heraus, ob eine Datei in C # / .NET vorhanden ist?


186

Ich möchte eine Zeichenfolge, die einen Pfad zu einer Datei enthält, auf das Vorhandensein dieser Datei (etwa den -eTest in Perl oder den os.path.exists()in Python) in C # testen .

Antworten:


303

Verwenden:

File.Exists(path)

MSDN: http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx

Bearbeiten: In System.IO


14
File.Exists (Pfad) gibt false zurück, auch wenn die Datei vorhanden ist, ABER der Aufrufer hat keine Berechtigung zum Lesen. Gibt es eine andere Möglichkeit, mit solchen Situationen umzugehen und zu überprüfen, ob eine Datei vorhanden ist, auch wenn der Anrufer sie nicht lesen kann?
ADTC

3
@ADTC: Aus Sicherheitsgründen klingt es normal, dass es so funktioniert. Aus Entwicklersicht kann es die Dinge komplizierter machen. Erhalten Sie in diesem Fall eine Ausnahme, wenn Sie versuchen, eine Datei zu erstellen?
user276648

2
@ADTC stolperte gerade vorbei und dachte, ich könnte Drop-Box-Verzeichnisse erwähnen. Diese können dort eingerichtet werden, wo Sie eine Erstellungs- oder Schreibberechtigung, aber keine Leseberechtigung haben. Nicht, dass es für diese Frage direkt relevant wäre, nur dass sie nicht so seltsam sind, wie man denkt.
Ukko

1
Randnotiz: File.Exists gibt auf Google Drive File Stream G: Laufwerk False zurück, wenn die Schreibweise des Pfads nicht genau mit der auf G: übereinstimmt. Normalerweise spielt das Gehäuse eines physischen Laufwerks keine Rolle, daher frage ich mich, ob bei der Exists-Methode etwas nicht stimmt.
CTZStef

1
@CTZStef Das ist die Eigenart des virtuellen Laufwerks von Google und nicht der Framework-Methode.
Eugene Mayevski 'Rückruf



4

Geben Sie den vollständigen Pfad als Eingabe an. Vermeiden Sie relative Pfade.

 return File.Exists(FinalPath);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.