Directory.CreateDirectory メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したパスにすべてのディレクトリを作成します。
オーバーロード
CreateDirectory(String) |
既に存在している場合以外は、指定したパスにすべてのディレクトリとサブディレクトリを作成します。 |
CreateDirectory(String, UnixFileMode) |
既に存在しない限り、指定したアクセス許可を持つ指定したパス内のすべてのディレクトリとサブディレクトリを作成します。 |
CreateDirectory(String, DirectorySecurity) |
既に存在している場合以外は、指定したパスにすべてのディレクトリを作成し、指定した Windows セキュリティを適用します。 |
CreateDirectory(String)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
既に存在している場合以外は、指定したパスにすべてのディレクトリとサブディレクトリを作成します。
public:
static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path);
public static System.IO.DirectoryInfo CreateDirectory (string path);
static member CreateDirectory : string -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String) As DirectoryInfo
パラメーター
- path
- String
作成するディレクトリ。
戻り値
指定したパスに存在するディレクトリを表すオブジェクト。 指定したパスにおいてディレクトリが既に存在するかどうかにかかわりなく、このオブジェクトが返されます。
例外
呼び出し元に、必要なアクセス許可がありません。
.NET Framework バージョンと .NET Core バージョンが 2.1 より前の場合: path
は長さ 0 の文字列、空白のみを含む、または無効な文字が 1 つ以上含まれています。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。
- または -
path
のプレフィックスまたは内容がコロン文字 (:) だけです。
path
が null
です。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
path
に、ドライブ ラベル (「C:\」) の一部ではないコロン文字 (:) が含まれています。
例
次の例では、指定したディレクトリを作成および削除します。
using namespace System;
using namespace System::IO;
int 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 0;
}
// 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 );
}
}
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 {}
}
}
open System.IO
// Specify the directory you want to manipulate.
let path = @"c:\MyDir"
try
// Determine whether the directory exists.
if Directory.Exists path then
printfn "That path exists already."
else
// Try to create the directory.
let di = Directory.CreateDirectory path
printfn $"The directory was created successfully at {Directory.GetCreationTime path}."
// Delete the directory.
di.Delete()
printfn "The directory was deleted successfully."
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
' Specify the directory you want to manipulate.
Dim path As String = "c:\MyDir"
Try
' Determine whether the directory exists.
If Directory.Exists(path) Then
Console.WriteLine("That path exists already.")
Return
End If
' Try to create the directory.
Dim di As DirectoryInfo = 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 e As Exception
Console.WriteLine("The process failed: {0}.", e.ToString())
End Try
End Sub
End Class
現在のディレクトリが 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")
Directory.CreateDirectory("Public\\Html");
Directory.CreateDirectory("\\Users\\User1\\Public\\Html");
Directory.CreateDirectory("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 システムでは、パス区切り記号としてスラッシュ (/) を使用します。
こちらもご覧ください
適用対象
CreateDirectory(String, UnixFileMode)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
既に存在しない限り、指定したアクセス許可を持つ指定したパス内のすべてのディレクトリとサブディレクトリを作成します。
public:
static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path, System::IO::UnixFileMode unixCreateMode);
[System.Runtime.Versioning.UnsupportedOSPlatform("windows")]
public static System.IO.DirectoryInfo CreateDirectory (string path, System.IO.UnixFileMode unixCreateMode);
[<System.Runtime.Versioning.UnsupportedOSPlatform("windows")>]
static member CreateDirectory : string * System.IO.UnixFileMode -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String, unixCreateMode As UnixFileMode) As DirectoryInfo
パラメーター
- path
- String
作成するディレクトリ。
- unixCreateMode
- UnixFileMode
ディレクトリの作成に使用される Unix ファイル モードを指定する列挙値のビットごとの組み合わせ。
戻り値
指定したパスに存在するディレクトリを表すオブジェクト。 指定したパスにおいてディレクトリが既に存在するかどうかにかかわりなく、このオブジェクトが返されます。
- 属性
例外
path
は長さ 0 の文字列であるか、1 つ以上の無効な文字を含みます。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。
path
が null
です。
ファイル モードが無効です。
呼び出し元に、必要なアクセス許可がありません。
指定したパスがシステムで定義されている最大長を超えています。
path
はファイルです。
の path
コンポーネントはディレクトリではありません。
適用対象
CreateDirectory(String, DirectorySecurity)
既に存在している場合以外は、指定したパスにすべてのディレクトリを作成し、指定した Windows セキュリティを適用します。
public:
static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static System.IO.DirectoryInfo CreateDirectory (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member CreateDirectory : string * System.Security.AccessControl.DirectorySecurity -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String, directorySecurity As DirectorySecurity) As DirectoryInfo
パラメーター
- path
- String
作成するディレクトリ。
- directorySecurity
- DirectorySecurity
ディレクトリに適用するアクセス制御。
戻り値
指定したパスに存在するディレクトリを表すオブジェクト。 指定したパスにおいてディレクトリが既に存在するかどうかにかかわりなく、このオブジェクトが返されます。
例外
呼び出し元に、必要なアクセス許可がありません。
.NET Framework バージョンと .NET Core バージョンが 2.1 より前の場合: path
は長さ 0 の文字列、空白のみを含む、または無効な文字が 1 つ以上含まれています。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。
- または -
path
のプレフィックスまたは内容がコロン文字 (:) だけです。
path
が null
です。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
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);
}
}
}
open System.IO
open System.Security.AccessControl
let securityRules = DirectorySecurity()
securityRules.AddAccessRule(FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow))
securityRules.AddAccessRule(FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow))
let di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules)
Imports System.IO
Imports System.Security.AccessControl
Module Module1
Sub Main()
Dim securityRules As DirectorySecurity = New DirectorySecurity()
securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account1", FileSystemRights.Read, AccessControlType.Allow))
securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow))
Dim di As DirectoryInfo = Directory.CreateDirectory("C:\destination\NewDirectory", securityRules)
End Sub
End Module
注釈
アクセス制御を使用してディレクトリを作成するには、このメソッド のオーバーロードを使用します。セキュリティが適用される前にディレクトリにアクセスできる可能性はありません。
パラメーターで指定されたすべてのディレクトリは、既に path
存在しない限り、または の一部 path
が無効でない限り、作成されます。 パラメーターは path
、ファイル パスではなくディレクトリ パスを指定します。 ディレクトリが既に存在する場合、このメソッドは新しいディレクトリを作成しませんが、既存の DirectoryInfo ディレクトリの オブジェクトを返します。
末尾のスペースは、ディレクトリを作成する前に path
、 パラメーターの末尾から削除されます。
書き込みアクセス権を持つ共有上のリモート コンピューターにディレクトリを作成できます。 UNC パスがサポートされています。たとえば、Visual Basic \\\\2009\\Archives\\December
と C# では、 に次path
\\2009\Archives\December
を指定できます。
コロン文字のみを使用してディレクトリを作成する (:)はサポートされていないため、 NotSupportedException
がスローされます。
適用対象
.NET