web-dev-qa-db-ja.com

FileStreamとフォルダーの作成

簡単な質問です。私はこのようなものを使用しています

FileStream fs = new FileStream(fileName, FileMode.Create);

フォルダーが存在しない場合にフォルダーを作成するように強制するために渡すことができるパラメーターがあるかどうか疑問に思っていました。現時点では、フォルダーが見つからない場合は例外がスローされます。

より良い方法がある場合は、FileStreamを使用してアイデアを受け入れます。

55
Ash Burlaczenko

Directory.CreateDirectory を使用します。

Directory.CreateDirectoryメソッド(文字列)

パスで指定されたすべてのディレクトリとサブディレクトリを作成します。

例:

string fileName = @"C:\Users\SomeUser\My Documents\Foo\Bar\Baz\text1.txt";

Directory.CreateDirectory(Path.GetDirectoryName(fileName));

using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
    // ...
}

Path.GetDirectoryName は、ファイル名のディレクトリ部分を返します。)

116
dtb

何かのようなもの:

void EnsureFolder(string path)
{
    string directoryName = Path.GetDirectoryName(path);
    // If path is a file name only, directory name will be an empty string
    if (directoryName.Length > 0)
    {
        // Create all directories on the path that don't already exist
        Directory.CreateDirectory(directoryName);
    }
}
15
Joe