Directory.CreateDirectory 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 경로에 모든 디렉터리를 만듭니다.
오버로드
CreateDirectory(String) |
이미 존재하지 않는 한 지정된 경로에 모든 디렉터리와 하위 디렉터리를 만듭니다. |
CreateDirectory(String, UnixFileMode) |
지정된 권한이 없는 한 지정된 경로에 있는 모든 디렉터리와 하위 디렉터리를 만듭니다. |
CreateDirectory(String, DirectorySecurity) |
이미 존재하지 않는 경우 지정된 경로에 모든 디렉터리를 만들고 지정된 Windows 보안을 적용합니다. |
CreateDirectory(String)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- 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
만들 디렉터리입니다.
반환
지정된 경로에서 디렉터리를 나타내는 개체입니다. 이 개체는 지정된 경로에 디렉터리가 이미 존재하는지 여부와 관계없이 반환됩니다.
예외
호출자에게 필요한 권한이 없는 경우
2.1보다 오래된 .NET Framework 및 .NET Core 버전: path
길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. 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
지정할 수 있습니다.
콜론 문자(:)만 있는 디렉터리를 만드는 것은 지원되지 않으며 이 throw됩니다 NotSupportedException
.
Unix 시스템에서 슬래시(/)를 경로 구분 기호로 사용합니다.
추가 정보
적용 대상
CreateDirectory(String, UnixFileMode)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- 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인 문자열이거나 하나 이상의 잘못된 문자를 포함합니다. 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
디렉터리에 적용할 액세스 제어입니다.
반환
지정된 경로에서 디렉터리를 나타내는 개체입니다. 이 개체는 지정된 경로에 디렉터리가 이미 존재하는지 여부와 관계없이 반환됩니다.
예외
호출자에게 필요한 권한이 없는 경우
2.1보다 오래된 .NET Framework 및 .NET Core 버전: path
길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. GetInvalidPathChars() 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
또는
콜론 문자(:)가 path
앞에 오거나 포함됩니다.
path
이(가) null
인 경우
지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).
path
에 드라이브 레이블("C:\")에 속하지 않는 콜론 문자(:)가 포함되어 있습니다.
예제
다음 예제에서는 두 사용자 계정에 대한 액세스 규칙을 사용하여 새 디렉터리를 만듭니다.
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
throw됩니다.
적용 대상
.NET