2009-02-12 15 views
10

Czy istnieje standardowa funkcja sprawdzania, czy określony katalog jest prawidłowy?C# sprawdź, czy miejsce docelowe pliku jest prawidłowe

Powód, dla którego pytam, to to, że otrzymuję bezwzględny ciąg do katalogu i nazwę pliku od użytkownika i chcę sprawdzić poprawność lokalizacji, aby sprawdzić, czy jest poprawna.

Odpowiedz

28

Dla pliku

File.Exists(string) 

dla katalogu

Directory.Exists(string) 

UWAGA: Jeśli ponowne obiekt należy rozważyć użycie klasy FileInfo vs statycznej klasie pliku. Statyczne metody klasy File umożliwiają każdorazową niepotrzebną kontrolę bezpieczeństwa.
FileInfo - DirectoryInfo - File - Directory

FileInfo fi = new FileInfo(fName); 
if (fi.Exists) 
    //Do stuff 

LUB

DirectoryInfo di = new DirectoryInfo(fName); 
if (di.Exists) 
    //Do stuff 
9
if(System.IO.File.Exists(fileOrDirectoryPath)) 
{ 
    //do stuff 
} 

To powinno wystarczyć!

+0

Zaktualizowana - Zapamiętałam niepoprawnie przestrzeń nazw. – xan

0

Poprzednia odpowiedź jest poprawna w odniesieniu do sprawdzenia, czy dany plik lub katalog istnieje. Klasa Path zawiera również wiele funkcji użytecznych do sprawdzania poprawności lub manipulowania różnymi komponentami ścieżki.

2

Jeśli nie może to być nowy katalog, możesz po prostu sprawdzić, czy istnieje.

Wygląda na to, że można również użyć Path.GetInvalidPathChars, aby sprawdzić niepoprawne znaki.

2

Można również wziąć pod uwagę, że ważna droga sama w sobie nie jest w 100% poprawny. Jeśli użytkownik dostarcza C: \ windows \ System32 lub dysk CD, system operacyjny może wygenerować wyjątek podczas próby zapisu.

Powiązane problemy