Come scoprire se esiste un file in C # / .NET?


186

Vorrei testare una stringa contenente un percorso a un file per l'esistenza di quel file (qualcosa come il -etest in Perl o os.path.exists()in Python) in C #.

Risposte:


303

Uso:

File.Exists(path)

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

Modifica: in System.IO


14
File.Exists (percorso) restituisce false anche se il file esiste MA IL chiamante non dispone dell'autorizzazione per leggerlo. Esiste un modo diverso di gestire questo tipo di situazioni e verificare se esiste un file anche se il chiamante non è in grado di leggerlo?
ADTC

3
@ADTC: dal punto di vista della sicurezza sembra normale che funzioni in questo modo, dal punto di vista degli sviluppatori, potrebbe rendere le cose più complicate. In questo caso si ottiene un'eccezione se si tenta di creare un file?
user276648

2
@ADTC è appena inciampato e ho pensato di poter menzionare le directory drop-box. Quelle possono essere configurate dove hai l'autorizzazione di creazione o scrittura ma nessuna autorizzazione di lettura. Non che sia direttamente pertinente a questa domanda, solo che non sono così strani come si potrebbe pensare.
Ukko,

1
Nota a margine: File.Exists restituisce False su Google Drive File Stream G: drive, se il case del percorso non corrisponde esattamente a ciò che è effettivamente su G :. Di solito su qualsiasi involucro di unità fisica non importa, quindi mi chiedo, c'è qualcosa che non va nel metodo Exists?
CTZStef,

1
@CTZStef questa è la stranezza dell'unità virtuale di Google piuttosto che del metodo framework.
Eugene Mayevski 'Callback



4

Fornisci il percorso completo come input. Evita percorsi relativi.

 return File.Exists(FinalPath);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.