英語で読む

次の方法で共有


Directory.CreateDirectory メソッド

定義

指定したパスにすべてのディレクトリを作成します。

オーバーロード

CreateDirectory(String)

既に存在している場合以外は、指定したパスにすべてのディレクトリとサブディレクトリを作成します。

CreateDirectory(String, UnixFileMode)

既に存在しない限り、指定したアクセス許可を持つ指定したパス内のすべてのディレクトリとサブディレクトリを作成します。

CreateDirectory(String, DirectorySecurity)

既に存在している場合以外は、指定したパスにすべてのディレクトリを作成し、指定した Windows セキュリティを適用します。

CreateDirectory(String)

ソース:
Directory.cs
ソース:
Directory.cs
ソース:
Directory.cs

既に存在している場合以外は、指定したパスにすべてのディレクトリとサブディレクトリを作成します。

public static System.IO.DirectoryInfo CreateDirectory (string path);

パラメーター

path
String

作成するディレクトリ。

戻り値

指定したパスに存在するディレクトリを表すオブジェクト。 指定したパスにおいてディレクトリが既に存在するかどうかにかかわりなく、このオブジェクトが返されます。

例外

path によって指定されたディレクトリはファイルです。

- または -

ネットワーク名が不明です。

呼び出し元に、必要なアクセス許可がありません。

.NET Framework バージョンと .NET Core バージョンが 2.1 より前の場合: path は長さ 0 の文字列、空白のみを含む、または無効な文字が 1 つ以上含まれています。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。

- または -

path のプレフィックスまたは内容がコロン文字 (:) だけです。

pathnullです。

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

path に、ドライブ ラベル (「C:\」) の一部ではないコロン文字 (:) が含まれています。

次の例では、指定したディレクトリを作成および削除します。

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directory you want to manipulate.
        string path = @"c:\MyDir";

        try
        {
            // Determine whether the directory exists.
            if (Directory.Exists(path))
            {
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            DirectoryInfo di = Directory.CreateDirectory(path);
            Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}

現在のディレクトリが C:\Users\User1 のときにディレクトリ C:\Users\User1\Public\Html作成するには、次のいずれかの呼び出しを使用して、円記号が正しく解釈されるようにします。

Directory.CreateDirectory("Public\\Html");
Directory.CreateDirectory("\\Users\\User1\\Public\\Html");
Directory.CreateDirectory("c:\\Users\\User1\\Public\\Html");

注釈

で指定されたすべてのディレクトリは、既に path 存在しない限り、または の一部 path が無効でない限り作成されます。 ディレクトリが既に存在する場合、このメソッドは新しいディレクトリを作成しませんが、既存の DirectoryInfo ディレクトリの オブジェクトを返します。

パラメーターは path 、ファイル パスではなくディレクトリ パスを指定します。

末尾のスペースは、ディレクトリを作成する前に path 、 パラメーターの末尾から削除されます。

書き込みアクセス権を持つ共有上のリモート コンピューターにディレクトリを作成できます。 UNC パスがサポートされています。たとえば、Visual Basic \\\\2009\\Archives\\December と C# では、 に次path\\2009\Archives\Decemberを指定できます。

コロン文字のみを使用してディレクトリを作成する (:)はサポートされていないため、 がスローされます NotSupportedException

Unix システムでは、パス区切り記号としてスラッシュ (/) を使用します。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

CreateDirectory(String, UnixFileMode)

ソース:
Directory.cs
ソース:
Directory.cs
ソース:
Directory.cs

既に存在しない限り、指定したアクセス許可を持つ指定したパス内のすべてのディレクトリとサブディレクトリを作成します。

[System.Runtime.Versioning.UnsupportedOSPlatform("windows")]
public static System.IO.DirectoryInfo CreateDirectory (string path, System.IO.UnixFileMode unixCreateMode);

パラメーター

path
String

作成するディレクトリ。

unixCreateMode
UnixFileMode

ディレクトリの作成に使用される Unix ファイル モードを指定する列挙値のビットごとの組み合わせ。

戻り値

指定したパスに存在するディレクトリを表すオブジェクト。 指定したパスにおいてディレクトリが既に存在するかどうかにかかわりなく、このオブジェクトが返されます。

属性

例外

path は長さ 0 の文字列であるか、1 つ以上の無効な文字を含みます。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。

pathnullです。

ファイル モードが無効です。

呼び出し元に、必要なアクセス許可がありません。

指定したパスがシステムで定義されている最大長を超えています。

path はファイルです。

path コンポーネントはディレクトリではありません。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 7, 8, 9

CreateDirectory(String, DirectorySecurity)

既に存在している場合以外は、指定したパスにすべてのディレクトリを作成し、指定した Windows セキュリティを適用します。

public static System.IO.DirectoryInfo CreateDirectory (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);

パラメーター

path
String

作成するディレクトリ。

directorySecurity
DirectorySecurity

ディレクトリに適用するアクセス制御。

戻り値

指定したパスに存在するディレクトリを表すオブジェクト。 指定したパスにおいてディレクトリが既に存在するかどうかにかかわりなく、このオブジェクトが返されます。

例外

path によって指定されたディレクトリはファイルです。

- または -

ネットワーク名が不明です。

呼び出し元に、必要なアクセス許可がありません。

.NET Framework バージョンと .NET Core バージョンが 2.1 より前の場合: path は長さ 0 の文字列、空白のみを含む、または無効な文字が 1 つ以上含まれています。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。

- または -

path のプレフィックスまたは内容がコロン文字 (:) だけです。

pathnullです。

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。

path に、ドライブ ラベル (「C:\」) の一部ではないコロン文字 (:) が含まれています。

次の例では、2 つのユーザー アカウントのアクセス規則を持つ新しいディレクトリを作成します。

using System;
using System.IO;
using System.Security.AccessControl;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectorySecurity securityRules = new DirectorySecurity();
            securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow));
            securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow));

            DirectoryInfo di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules);
        }
    }
}

注釈

アクセス制御を使用してディレクトリを作成するには、このメソッド のオーバーロードを使用します。セキュリティが適用される前にディレクトリにアクセスできる可能性はありません。

パラメーターで指定されたすべてのディレクトリは、既に path 存在しない限り、または の一部 path が無効でない限り、作成されます。 パラメーターは path 、ファイル パスではなくディレクトリ パスを指定します。 ディレクトリが既に存在する場合、このメソッドは新しいディレクトリを作成しませんが、既存の DirectoryInfo ディレクトリの オブジェクトを返します。

末尾のスペースは、ディレクトリを作成する前に path 、 パラメーターの末尾から削除されます。

書き込みアクセス権を持つ共有上のリモート コンピューターにディレクトリを作成できます。 UNC パスがサポートされています。たとえば、Visual Basic \\\\2009\\Archives\\December と C# では、 に次path\\2009\Archives\Decemberを指定できます。

コロン文字のみを使用してディレクトリを作成する (:)はサポートされていないため、 NotSupportedException がスローされます。

適用対象

.NET Framework 4.8.1 およびその他のバージョン
製品 バージョン
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1