2012-04-09 4 views
1

So eine Antwort in einer anderen Frage sagen, ich sah, dass dies funktionieren soll:wenn eine Datei prüfen existieren Fehler

using System.IO; 
if (File.Exists(Path)) 
{ 
    Action(); 
} 

Allerdings, wenn ich dies tun, bekomme ich diese Fehler:

'System.IO' is a 'namespace', which is not valid in the given context 

The Name 'File' does not exist in the current context 

Was mache ich falsch?

+0

Sie können auch einen Blick auf ReSharper nehmen wollen, ein Werkzeug (nicht kostenlos), die sauberen Code schreiben hilft und zeigt diese Art von Ausnahmen direkt, wenn Sie den Code eingeben. – Mathieu

Antwort

4

hinzufügen Entweder using System.IO; am Anfang der Datei

Oder

es wie

if (System.IO.File.Exists(Path)) 
{ 
    //do whatever 
} 
10

Sie müssen using System.IO; an der Spitze Ihrer Datei außerhalb der Klasse setzen.

+0

Kann ich fragen, warum dies nicht die akzeptierte Antwort ist? Robbie antwortete vor @Shyju, aber du hast seine Antwort akzeptiert? –

+0

vielleicht ist es, weil @Shyju die zusätzliche Alternative zur Verfügung gestellt hat, kein 'using' zu haben? Ich bin nicht wirklich gestört, aber danke für meine Ecke :) – Robbie

1

Ganz am Anfang der Datei:

using System.IO; <-- 

namespace Application1 
{ 
+0

Es muss nicht unbedingt außerhalb von Namespace-Deklarationen sein, aber es muss außerhalb der Klassen-Deklaration sein – Davy8

+0

@ Davy8 Ooh, wusste ich nicht, danke ! –

2

hart verwenden Es ist um zu sagen, was Sie genau machen Aber es sieht so aus, als ob du Hilfe bei der Reihenfolge deiner Aussagen benötigst. using Anweisungen werden am Anfang der CS-Datei angezeigt, und Ihre Logik muss in einer Methode innerhalb einer Klasse angezeigt werden.

Hier ist, wie es kann mit einer Konsolenanwendung erfolgen:

using System.IO; 

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     string path = @"c:\temp\file.txt"; 

     if (File.Exists(path)) 
     { 
      Action(); 
     } 
    } 
} 
Verwandte Themen