web-dev-qa-db-ja.com

ファイルを作成するためのディレクトリが存在しない場合、どのように作成しますか?

ここに、ディレクトリが存在しない場合に壊れるコードがあります。

System.IO.File.WriteAllText(filePath, content);

1行(または数行)で、新しいファイルにつながるディレクトリが存在するかどうかを確認し、存在しない場合は、新しいファイルを作成する前に作成できますか?

.NET 3.5を使用しています。

180
Diskdrive

作成する

(new FileInfo(filePath)).Directory.Create()ファイルに書き込む前。

....または、存在する場合は作成します(それ以外は何もしません)

System.IO.FileInfo file = new System.IO.FileInfo(filePath);
file.Directory.Create(); // If the directory already exists, this method does nothing.
System.IO.File.WriteAllText(file.FullName, content);
353
Don

次のコードを使用できます

  DirectoryInfo di = Directory.CreateDirectory(path);
102
Ram

@hitecが言ったように、適切なパーミッションを持っていることを確認する必要があります。もしそうなら、この行を使用してディレクトリの存在を確認できます:

Directory.CreateDirectory(Path.GetDirectoryName(filePath))

30
willvv