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 .

Daren Thomas
quelle

Antworten:

303

Verwenden:

File.Exists(path)

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

Bearbeiten: In System.IO

Daniel Jennings
quelle
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
53

System.IO.File :

using System.IO;

if (File.Exists(path)) 
{
    Console.WriteLine("file exists");
} 
Peter Hoffmann
quelle
25

System.IO.File.Exists (Pfad)

msdn

Pirho
quelle
4

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

 return File.Exists(FinalPath);
Shivi
quelle