2009-08-24 14 views
15

Po prostu nie mogę tego obejść. Jestem w stanie utworzyć plik z File.Create ... File.CrateText itd., Tylko jeśli ścieżka istnieje. Jeśli nie, plik nie zostanie zapisany i zwróci błąd. Jak utworzyć ścieżkę?Tworzenie pliku, którego ścieżka nie istnieje?

+1

możliwy duplikat [Jak utworzyć wiele katalogów z jednej pełnej ścieżki w C#?] (http://stackoverflow.com/questions/2134392/how-to-create-multiple -directories-from-a-single-full-path-in-c) –

Odpowiedz

29

Spróbuj

Directory.CreateDirectory("C:\MyApp\MySubDir\Data") 

http://www.devx.com/vb2themax/Tip/18678

+0

Ponieważ ten wpis najprawdopodobniej rozwiązuje problem, dodatkowe informacje o MSDN: http://msdn.microsoft.com/en-us/library/as2f1fez.aspx – Bdiem

+1

A jak sprawdzimy, czy ścieżka istnieje? lub po prostu nazywamy tę funkcję. –

+9

CZYTAJ! MSDN mówi: jeśli folder już istnieje, CreateDirectory nic nie robi. – Bdiem

4

Trzeba będzie utworzyć katalog pierwszy. Utworzy on wszystkie podkatalogi, które nie istnieją w ścieżce, którą wyślesz. To dość potężny element funkcjonalności.

Directory.CreateDirectory(filePath); 

Jeśli nie wiesz, czy istnieje katalog, możesz użyć Directory.Exists. Ale nie w tym przypadku, ponieważ byłoby to bezcelowe. MSDN twierdzi, że CreateDirectory nic nie robi, jeśli katalog istnieje. Ale jeśli chcesz sprawdzić existance katalogu z innego powodu można użyć:

if(Directory.Exists(folder) == false) 
    { 
    //do stuff 
    } 
1
Directory.CreateDirectory("path"); 
10

Biorąc pod uwagę, że masz pełną ścieżkę (Folder + nazwa pliku), następujący kod będzie zapewnić wymagany katalog ścieżka istnieje (jeśli nie istnieje już)

 FileInfo fileInfo = new FileInfo(fileFullPath); 

     if (!fileInfo.Exists) 
      Directory.CreateDirectory(fileInfo.Directory.FullName); 


     //create the file ... 
1

poniżej powinny również działać

FileInfo fileInfo = new FileInfo(fileFullPath); 
    if (!fileInfo.Directory.Exists) fileInfo.Directory.Create() 

prace nad directory of fileinfo zamiast statycznej klasy katalogu

Powiązane problemy