Directory.CreateDirectory 메서드

정의

지정된 경로에 모든 디렉터리를 만듭니다.Creates all the directories in a specified path.

오버로드

CreateDirectory(String)

이미 존재하지 않는 한 지정된 경로에 모든 디렉터리와 하위 디렉터리를 만듭니다.Creates all directories and subdirectories in the specified path unless they already exist.

CreateDirectory(String, DirectorySecurity)

이미 존재하지 않는 경우 지정된 경로에 모든 디렉터리를 만들고 지정된 Windows 보안을 적용합니다.Creates all the directories in the specified path, unless they already exist, applying the specified Windows security.

CreateDirectory(String)

이미 존재하지 않는 한 지정된 경로에 모든 디렉터리와 하위 디렉터리를 만듭니다.Creates all directories and subdirectories in the specified path unless they already exist.

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

만들 디렉터리입니다.The directory to create.

반환

지정된 경로에서 디렉터리를 나타내는 개체입니다.An object that represents the directory at the specified path. 이 개체는 지정된 경로에 디렉터리가 이미 존재하는지 여부와 관계없이 반환됩니다.This object is returned regardless of whether a directory at the specified path already exists.

예외

path에 의해 지정된 디렉터리가 파일입니다.The directory specified by path is a file.

또는-or- 네트워크 이름을 알 수 없습니다.The network name is not known.

호출자에게 필요한 권한이 없는 경우The caller does not have the required permission.

path가 빈 문자열이거나, 공백만을 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.path is a zero-length string, contains only white space, or contains one or more invalid characters. GetInvalidPathChars() 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.You can query for invalid characters by using the GetInvalidPathChars() method.

또는-or- 콜론 문자(:)가 path 앞에 오거나 포함됩니다.path is prefixed with, or contains, only a colon character (:).

path이(가) null인 경우path is null.

지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.The specified path, file name, or both exceed the system-defined maximum length.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).The specified path is invalid (for example, it is on an unmapped drive).

path에 드라이브 레이블("C:\")에 속하지 않는 콜론 문자(:)가 포함되어 있습니다.path contains a colon character (:) that is not part of a drive label ("C:\").

예제

다음 예제를 만들고 지정된 된 디렉터리를 삭제 합니다.The following example creates and deletes the specified directory.

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 {}
    }
}
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 디렉터리를 만들려면, 백슬래시 올바르게 해석 되도록 하려면 다음 호출을 사용 합니다.To create the directory C:\Users\User1\Public\Html when the current directory is C:\Users\User1, use any of the following calls to ensure that the backslash is interpreted properly.

Visual basic의 경우:In Visual Basic:

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

C#:In C#:

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

C + +:In C++:

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

설명

path에 지정 된 모든 디렉터리와 모든 디렉터리가 이미 존재 하지 않는 한 또는 path 일부가 유효 하지 않은 경우 생성 됩니다.Any and all directories specified in path are created, unless they already exist or unless some part of path is invalid. 디렉터리가 이미 있는 경우이 메서드는 새 디렉터리를 만들지 않지만 기존 디렉터리에 대 한 DirectoryInfo 개체를 반환 합니다.If the directory already exists, this method does not create a new directory, but it returns a DirectoryInfo object for the existing directory.

path 매개 변수는 파일 경로가 아닌 디렉터리 경로를 지정 합니다.The path parameter specifies a directory path, not a file path.

디렉터리를 만들기 전에 path 매개 변수의 끝에서 후행 공백을 제거 합니다.Trailing spaces are removed from the end of the path parameter before creating the directory.

에 대 한 쓰기 권한이 있는 공유에 원격 컴퓨터 디렉터리를 만들 수 있습니다.You can create a directory on a remote computer, on a share that you have write access to. UNC 경로가 지원 됩니다. 예를 들어 Visual Basic의 \\2009\Archives\December path에 대해 다음을 지정 하 고에서 C#\\\\2009\\Archives\\December 수 있습니다.UNC paths are supported; for example, you can specify the following for path: \\2009\Archives\December in Visual Basic, and \\\\2009\\Archives\\December in C#.

콜론 문자만 사용 하 여 디렉터리 만들기 (:) 은 지원 되지 않으며 NotSupportedException throw 됩니다.Creating a directory with only the colon character (:) is not supported, and will cause a NotSupportedException to be thrown.

보안

FileIOPermission
읽기 및 쓰기 파일 또는 디렉터리입니다.for reading and writing files or directories. 연관 된 열거형: Read, WriteAssociated enumerations: Read, Write

추가 정보

CreateDirectory(String, DirectorySecurity)

이미 존재하지 않는 경우 지정된 경로에 모든 디렉터리를 만들고 지정된 Windows 보안을 적용합니다.Creates all the directories in the specified path, unless they already exist, applying the specified Windows security.

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

매개 변수

path
String

만들 디렉터리입니다.The directory to create.

directorySecurity
DirectorySecurity

디렉터리에 적용할 액세스 제어입니다.The access control to apply to the directory.

반환

지정된 경로에서 디렉터리를 나타내는 개체입니다.An object that represents the directory at the specified path. 이 개체는 지정된 경로에 디렉터리가 이미 존재하는지 여부와 관계없이 반환됩니다.This object is returned regardless of whether a directory at the specified path already exists.

예외

path에 의해 지정된 디렉터리가 파일입니다.The directory specified by path is a file.

또는-or- 네트워크 이름을 알 수 없습니다.The network name is not known.

호출자에게 필요한 권한이 없는 경우The caller does not have the required permission.

path가 빈 문자열이거나, 공백만을 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.path is a zero-length string, contains only white space, or contains one or more invalid characters. GetInvalidPathChars() 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.You can query for invalid characters by using the GetInvalidPathChars() method.

또는-or- 콜론 문자(:)가 path 앞에 오거나 포함됩니다.path is prefixed with, or contains, only a colon character (:).

path이(가) null인 경우path is null.

지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.The specified path, file name, or both exceed the system-defined maximum length.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).The specified path is invalid (for example, it is on an unmapped drive).

path에 드라이브 레이블("C:\")에 속하지 않는 콜론 문자(:)가 포함되어 있습니다.path contains a colon character (:) that is not part of a drive label ("C:\").

예제

다음 예제에서는 두 개의 사용자 계정에 대 한 액세스 규칙을 사용 하 여 새 디렉터리를 만듭니다.The following example creates a new directory with access rules for two user accounts.

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);
        }
    }
}
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

설명

이 메서드 오버 로드를 사용 하 여 보안 적용 되기 전에 디렉터리에 액세스할 수 없는 가능성이 있으므로 액세스 제어를 사용 하 여 디렉터리를 만듭니다.Use this method overload to create a directory with access control, so there is no chance the directory can be accessed before security is applied.

path 매개 변수에 지정 된 모든 디렉터리는 이미 존재 하지 않는 한 또는 path의 일부가 잘못 된 경우에만 만들어집니다.Any and all directories specified in the path parameter are created, unless they already exist or unless some part of path is invalid. path 매개 변수는 파일 경로가 아닌 디렉터리 경로를 지정 합니다.The path parameter specifies a directory path, not a file path. 디렉터리가 이미 있는 경우이 메서드는 새 디렉터리를 만들지 않지만 기존 디렉터리에 대 한 DirectoryInfo 개체를 반환 합니다.If the directory already exists, this method does not create a new directory, but it returns a DirectoryInfo object for the existing directory.

디렉터리를 만들기 전에 path 매개 변수의 끝에서 후행 공백을 제거 합니다.Trailing spaces are removed from the end of the path parameter before creating the directory.

에 대 한 쓰기 권한이 있는 공유에 원격 컴퓨터 디렉터리를 만들 수 있습니다.You can create a directory on a remote computer, on a share that you have write access to. UNC 경로가 지원 됩니다. 예를 들어 Visual Basic의 \\2009\Archives\December path에 대해 다음을 지정 하 고에서 C#\\\\2009\\Archives\\December 수 있습니다.UNC paths are supported; for example, you can specify the following for path: \\2009\Archives\December in Visual Basic, and \\\\2009\\Archives\\December in C#.

콜론 문자만 사용 하 여 디렉터리 만들기 (:) 은 지원 되지 않으며 NotSupportedException 발생 합니다.Creating a directory with only the colon character (:) is not supported and causes a NotSupportedException to be thrown.

보안

FileIOPermission
대상 디렉터리에 대 한 읽기 및 쓰기 파일 및 디렉터리에 대 한 합니다.for reading and writing files and directories and for access to the destination directory. 연결 된 열거형: Read, Write 보안 동작: DemandAssociated enumerations: Read, Write Security action: Demand

적용 대상