2009-08-24 8 views
15

私はこれを回避することはできません。 File.Create ... File.CrateTextなどのファイルを作成することができます。パスが存在する場合のみです。そうでない場合、ファイルは書き込まれず、エラーが返されます。パスを作成するにはどうすればよいですか?パスが存在しないファイルを作成していますか?

+1

[C#で単一のフルパスから複数のディレクトリを作成するには?](http://stackoverflow.com/questions/2134392/how-to-create-multiple -d-1-full-path-in-c) –

答えて

29

は、あなたが最初にディレクトリを作成する必要があります

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

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

+0

このポストはここで問題を解決する可能性があるため、追加のMSDN情報を参照してください。http://msdn.microsoft.com/en-us/library/as2f1fez.aspx – Bdiem

+1

パスが存在するかどうかを確認するにはどうすればよいですか?またはこの関数を呼び出します。 –

+9

READ! MSDN Says:フォルダが既に存在する場合、CreateDirectoryは何もしません。 – Bdiem

4

を試してみてください。それはあなたがそれを送るパスの中に存在しないすべてのサブディレクトリを作成します。それは非常に強力な機能です。

Directory.CreateDirectory(filePath); 

ディレクトリが存在するかどうかわからない場合は、Directory.Existsを使用できます。しかし、この場合は無意味ではありません。 MSDNは、ディレクトリが現在存在する場合、CreateDirectoryは何もしないと述べています。しかし、あなたはあなたが使用できる別の理由のためのディレクトリのexistanceをチェックしたい場合:

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

あなたは完全なパス(フォルダ+ファイル名)をしたことを考えると、次のコードでは、あなたの必要なディレクトリを確保します(それが存在しない場合)、パスは以下の

 FileInfo fileInfo = new FileInfo(fileFullPath); 

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


     //create the file ... 
1

存在することも、上の

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

仕事を動作するはずです静的ディレクトリクラスではなくfileinfoのディレクトリ

関連する問題